Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL, wie Zeilen zurückgegeben werden, auch wenn Join-Daten leer sind

Wenn Tabelle product enthält mindestens eine Angabe. Und Sie möchten andere Spalten anzeigen, entweder NULL oder eine benutzerdefinierte Zeichenfolge wie "---" Dann müssen Sie in der Abfrage diesen Join angeben, auch wenn das Joining-Attribut null ist. Die folgende Abfrage liefert Ihnen also Daten.

SELECT
p.description AS p_description ,ifnull(pd.description,"---") AS pd_description,
ifnull(psd.description,"--") AS psd_description
FROM product AS p
LEFT JOIN Product_description AS pd ON(pd.product_id = p.product_id)
LEFT JOIN product_store_description AS psd ON(psd.product_id = p.product_id)
WHERE p.product_id = '1' AND (pd.language = 'en' or pd.language is null)
AND (psd.language = 'en' or psd.language is null) AND 
(psd.store_id = 1 or psd.store_id is null);