Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql come restituire le righe anche se i dati di join sono vuoti

Se tabella product contiene almeno un dato. E vuoi mostrare altre colonne sia NULL o una stringa personalizzata come "---" è necessario specificare nella query che si unisce anche se l'attributo di join è nullo. Quindi la seguente query ti darà i dati.

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);