Also hier gehts nicht darum einfach vier Tabellen per JOIN oder UNION zu vereinen.
Ich habe folgende 4 Tabellen. Das Beispiel wird so nicht verwendet und ist rein fiktiv.
Über den Sinn der Kundentabelle darf gestreitet werden und es ist nicht wichtig wieso die Tabelle genau diese Infos enthalten soll.
Ich habe eine kaufhaus_id vorliegen anhand dieser möchte ich nun die Zuordung Kunde - Produkt haben. Es sollen die Produkte ausgegeben werden die ein Kunde gekauft hat und auch die, die er nicht gekauft hat. Diese Produkte sollten auch noch die type_id besitzen welche beim Kunden eingetragen ist. Es soll also eine Liste von Kunden sein mit entsprechend gekauften und nicht gekauften Produkten sein. Ich hoffe das ist verständlich.
Mein Problem ist nun, dass ich bisher kein SQL-Befehl formulieren konnte, welcher mir die nötigen Infos liefert.
Am besten funktioniert folgender Befehl, welcher mir aber Produkte für einen Kunden liefert, welche eigentlich von einem anderen Kunden stammen. Da stimmen auch die kaufhaus_id nicht überein, sprich falscher Kunde, welcher in einem anderen kaufhaus das Produkt gekauft hat, da passt halt die type_id und wird dementsprechend zugeordnet.
Befehl:
Wäre für jede Hilfe dankbar.
Ich habe folgende 4 Tabellen. Das Beispiel wird so nicht verwendet und ist rein fiktiv.
Code:
Tabelle Produkt
- produkt_id
- name
- type_id
Code:
Tabelle gekauftes_produkt
- kunden_id
- produkt_id
- anzahl
Code:
Tabelle kaufhaus_kunde
- kaufhaus_id
- kunden_id
Code:
Kunde
- kunden_id
- type_id
- produkt_id
Über den Sinn der Kundentabelle darf gestreitet werden und es ist nicht wichtig wieso die Tabelle genau diese Infos enthalten soll.
Ich habe eine kaufhaus_id vorliegen anhand dieser möchte ich nun die Zuordung Kunde - Produkt haben. Es sollen die Produkte ausgegeben werden die ein Kunde gekauft hat und auch die, die er nicht gekauft hat. Diese Produkte sollten auch noch die type_id besitzen welche beim Kunden eingetragen ist. Es soll also eine Liste von Kunden sein mit entsprechend gekauften und nicht gekauften Produkten sein. Ich hoffe das ist verständlich.
Mein Problem ist nun, dass ich bisher kein SQL-Befehl formulieren konnte, welcher mir die nötigen Infos liefert.
Am besten funktioniert folgender Befehl, welcher mir aber Produkte für einen Kunden liefert, welche eigentlich von einem anderen Kunden stammen. Da stimmen auch die kaufhaus_id nicht überein, sprich falscher Kunde, welcher in einem anderen kaufhaus das Produkt gekauft hat, da passt halt die type_id und wird dementsprechend zugeordnet.
Befehl:
Code:
SELECT * FROM Produkt a
LEFT JOIN gekauftes_produkt pa ON a.produkt_id = pa.produkt_id
JOIN Kunde ps ON ps.type_id = a.type_id
JOIN kaufhaus_kunde pp ON pp.kunden_id = ps.kunden_id
WHERE pp.kaufhaus_id = 25
Wäre für jede Hilfe dankbar.