Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql comment renvoyer des lignes même si les données de jointure sont vides

Si table product contient au moins une donnée. Et vous voulez afficher d'autres colonnes soit NULL ou une chaîne personnalisée telle que "---" vous devez spécifier dans la requête cette jointure même si l'attribut de jointure est nul. Ainsi, la requête suivante vous donnera des données.

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