Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql como retornar linhas mesmo se os dados de junção estiverem vazios


Se a tabela product contém pelo menos um dado. E você quer mostrar outras colunas NULL ou string personalizada como "---" você tem que especificar na consulta essa junção mesmo que o atributo de junção seja nulo. Portanto, a consulta a seguir fornecerá dados.
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);