Primärschlüssel doppelt vorhanden - Wie kann das sein?

Hallo, lasse mir durch folgendes Query alle Masterprdukte der Shopware6 Datenbank anzeigen. Irgendetwas kann mit dem Query aber nicht stimmen, denn ich habe redundante Primärschlüssel und redundante Produktnummern. Was läuft da schief?

SELECT CONCAT("Masterprodukt") AS ConcatenatedString,product.id AS primaerschluessel,product_translation.name AS description, product.product_number AS prduktnummer FROM product
LEFT JOIN product_translation ON product.id=product_translation.product_id
WHERE product.parent_id IS NULL OR product.parent_id='0x';

ergibt
(entfernt)

Die Query macht genau das, was du vorgegeben hast.

Sie gibt dir für die Sprachen DE und EN Werte zurück. Da diese jeweils das gleiche Produkt betreffen, hast du eben jeweils zweimal die gleichen IDs.

Du hast 2 Übersetzungen pro Produkt.

Da war wohl Maxshop schneller :smiley:

Mein Professor hat thematisch alles immer dreimal wiederholt. Selbstverständlich nie wortgleich. Und dessen Vorlesungen bzw. Inhalte sind mir heute noch im Kopf :smile: Im Gegensatz zu allen anderen Vorlesungen :face_with_peeking_eye:

Von daher, vielen Dank für deinen Beitrag @brettvormkopp Doppelt oder dreifach kann niemals schaden.

Okay. Ich finde in der Tabelle product aber keinen FK language_id um das einzugrenzen. Wie muss ich das Query also erweitern, damit mir nur für eine Sprache (s.Anhang) die Produkte angezeigt werden?
image

Ahh, aber in der Tabelle product_translation gibt es diesen Schlüsselwert. Wie dämlich von mir. Vielen Dank für eure Hilfe!
Hier nochmals das Query für alle, die auf ein ähnliche Absicht stoßen:

SELECT CONCAT("Masterprodukt") AS ConcatenatedString,product.id AS primaerschluessel,product_translation.name AS description, product.product_number AS prduktnummer FROM product
LEFT JOIN product_translation ON product.id=product_translation.product_id
WHERE product.parent_id IS NULL 
AND product_translation.language_id=UNHEX('2fbb5fe2e29a4d70aa5854ce7ce3e20b')

Der Wert in der Funktion UNHEX entspricht dem PK aus der Tabelle language

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.