我正在编写一个房地产网站,并有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相关的主要照片
答案 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
条记录,这些记录没有关联imagens
且tipo = "capa"
或者,如果您改为SELECT *
并省略WHERE imagens.imovel_id IS NULL
,您将收到所有imovel
条记录以及相关联的" capa" imagens(如果JOINed imovel没有,则返回null。)