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

**URL:** <https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085>\
**Category:** Programmierung\
**Tags:** programming\
**Created:** [22. Mai 2024 um 13:08 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085 "2024-05-22T13:08:32Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![thomas.kipp](https://avatars.discourse-cdn.com/v4/letter/t/b5e925/32.png) [@thomas.kipp](https://forum.shopware.com/u/thomas.kipp)\
**Post date:** [22. Mai 2024 um 13:08 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085/1 "2024-05-22T13:08:32Z")

</div>

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?

```auto
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)

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [22. Mai 2024 um 13:39 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085/2 "2024-05-22T13:39:28Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [22. Mai 2024 um 13:39 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085/3 "2024-05-22T13:39:42Z")

</div>

Du hast 2 Übersetzungen pro Produkt.

Da war wohl Maxshop schneller 😃

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [22. Mai 2024 um 13:45 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085/4 "2024-05-22T13:45:29Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![thomas.kipp](https://avatars.discourse-cdn.com/v4/letter/t/b5e925/32.png) [@thomas.kipp](https://forum.shopware.com/u/thomas.kipp)\
**Post date:** [22. Mai 2024 um 13:57 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085/5 "2024-05-22T13:57:18Z")

</div>

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](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/e/c/ecc56095f1cb693ed3fa45ce9eefcb5e6328319b.png)

---

<div class="post-metadata">

**Author:** ![thomas.kipp](https://avatars.discourse-cdn.com/v4/letter/t/b5e925/32.png) [@thomas.kipp](https://forum.shopware.com/u/thomas.kipp)\
**Post date:** [22. Mai 2024 um 14:00 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085/6 "2024-05-22T14:00:14Z")

</div>

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:

```auto
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

---

<div class="post-metadata">

**Author:** ![system](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/2/9/29c7587ba660f00e4995d1743162782e5d6d8653.svg) [@system](https://forum.shopware.com/u/system)\
**Post date:** [21. Juni 2024 um 14:00 UTC](https://forum.shopware.com/t/primaerschluessel-doppelt-vorhanden-wie-kann-das-sein/104085/7 "2024-06-21T14:00:41Z")

</div>

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