如果mysql中存在或不存在字段,如何返回

时间:2016-10-28 16:50:07

标签: mysql

我正在编写一个房地产网站,并有2个表格:表格中的Imovel和图像我有一个字段,表示它是照片主要还是普通照片。 正如我所做,看看可能没有主要照片。 因为当我提供相关的选择表时它会返回更多正常的照片,不要告诉我这是否是Imovel的主要照片。 我使用了这些查询:

这回复了我的主要照片:

SELECT * FROM imovel 
INNER JOIN imagens ON imagens.imovel_id = imovel.id_imovel 
WHERE imagens.tipo = "capa"

这给了我正常的照片:

SELECT * FROM imovel 
INNER JOIN imagens ON imagens.imovel_id = imovel.id_imovel 
WHERE imagens.tipo = "outros"

大多数人没有做我想做的事,那就是看看你是否有与imovel相关的主要照片

1 个答案:

答案 0 :(得分:0)

您正在寻找LEFT JOIN。我并非100%确定我理解您的确切问题,但我认为这是您需要的查询。

SELECT imovel.*
FROM imovel 
LEFT JOIN imagens ON imagens.imovel_id = imovel.id_imovel AND imagens.tipo = "capa"
WHERE imagens.imovel_id IS NULL
;

此结果将包含所有imovel条记录,这些记录没有关联imagenstipo = "capa"

或者,如果您改为SELECT *并省略WHERE imagens.imovel_id IS NULL,您将收到所有imovel条记录以及相关联的" capa" imagens(如果JOINed imovel没有,则返回null。)