0

我想要做的是以下几点:

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 

会返回一些东西,所以我想得到那部分。现在它“刹车”并且如果第一个连接为空,则不返回任何内容。

这是否可能仅在一个查询中实现?我该怎么做?

感谢所有建议和帮助!

4

2 回答 2

1

为此使用LEFT JOINs 而不是INNER JOINs。

于 2013-10-15T12:23:00.547 回答
1

作为其他答案,这应该会给您提示使用什么连接。

Sql 连接

于 2013-10-15T12:28:55.337 回答