我要做的是以下内容:
SELECT
t1.id t1_id, t1.title t1_title, t1.subtitle t1_subtitle, t1.content t1_content,
t2.title t2_title, t2.newfilename t2_newfilename,
t3.picture t3_picture
FROM webcms_cms_content t1
INNER JOIN webcms_cms_downloads t2
ON t1.id = t2.content_id
INNER JOIN webcms_mod_galleries_pictures t3
ON t1.gallery_id = t3.gallery_id
WHERE t1.structure_id =3
AND t1.status=1
AND t1.flag=1
ORDER BY t1.newsdatum DESC, t3.rang ASC
现在的问题是,有时其中一个连接不会返回任何东西,但另一个连接会返回。因此,如果一个连接没有返回任何内容,我也希望始终获取数据。
更详细:
INNER JOIN webcms_cms_downloads t2
ON t1.id = t2.content_id
可能没有下载,但下一次加入
INNER JOIN webcms_mod_galleries_pictures t3
ON t1.gallery_id = t3.gallery_id
会返回一些东西,所以我想得到那个部分。现在它“刹车”并且如果第一个连接为空则不返回任何内容。
这只能在一个查询中实现吗?我该怎么办?
感谢所有建议和帮助!
答案 0 :(得分:1)
准确地使用LEFT JOIN
而不是INNER JOIN
。
答案 1 :(得分:1)
正如其他答案一样,这应该会给你一些联接使用的提示。