1
Ich habe eine ziemlich länger Abfrage aber ich dies vereinfacht:Welche Art von JOIN sollte ich hier verwenden?
SELECT p.ref, pl.name
FROM tpv_products p
LEFT JOIN tpv_products_languages pl
ON p.id = pl.tpv_products_id
WHERE pl.tpv_languages_id = 2;
Dies sind die Tabellen:
tpv_products:
id | ref
--------
1 | ref1
2 | ref2
3 | ref3
tpv_products_language:
tpv_languages_id | tpv_products_id | name
---------------------------------------------
1 | 1 | Rice
1 | 2 | Corn
1 | 3 | Milk
2 | 1 | Arroz
Was ich bekomme mit meiner Frage:
ref | name
----------
ref1| Arroz
Was ich erwartet hatte:
ref | name
----------
ref1| Arroz
ref2| NULL
ref3| NULL
Ich habe versucht, alle Arten von JOINS aber nicht das gewünschte Ergebnis finden.
Der 'where' Zustand verwandelt Ihr' links join' in eine 'inneren join', weil Sie auf Daten in der verknüpften Tabelle filtern. Wenn Sie die Bedingung in die On-Klausel des Joins setzen, wird das erwartete Ergebnis zurückgegeben –