我有以下查询
SELECT
interview_content.title `title`,
gallery_images.img_path img
FROM
`interview`,
`interview_content`,
`gallery`,
`gallery_images`
WHERE
`gallery_images`.`id_parrent` = `gallery`.`id`
AND
`gallery`.`id` = `interview`.`gallery_id`
AND
`gallery_images`.`default` = '1'
AND
`interview`.`id` = `interview_content`.`id_parrent`
AND
interview_content.id_lang = '2'
ORDER BY
interview.date DESC我需要在gallery、gallery_images表上使用左联接(即使没有图库或默认图像,也可以获得interview.title )。
非常感谢
更新
问题是,在第二左加入。我不能让他们正确地合作。当我尝试
SELECT
interview_content.title `title`,
gi.img_path img
FROM
`interview`,
`interview_content`
LEFT JOIN `gallery` as g ON g.`id` = `interview`.`gallery_id`
LEFT JOIN `gallery_images` as gi ON gi.id_parrent = g.`id`
WHERE
`interview`.`id` = `interview_content`.`id_parrent`
AND
interview_content.id_lang = '2'
ORDER BY
interview.date DESC
it returns //Unknown column 'interview.gallery_id' in 'on clause'发布于 2011-02-17 08:00:02
不要混合ANSI-89和ANSI-92样式的联接.
我发现了同样的问题,here。
所以我的查询必须如下所示
SELECT
ic.title `title`,
gi.img_path img
FROM
`interview` i
JOIN interview_content ic on ic.id_parrent = i.id AND ic.id_lang = '2'
LEFT JOIN `gallery` as g ON g.`id` = i.`gallery_id`
LEFT JOIN `gallery_images` as gi ON gi.id_parrent = g.`id`
AND gi.`default` = '1'
WHERE
i.`id` = ic.`id_parrent`
OPRDER BY
`i`.`date` DESC发布于 2011-02-16 17:50:59
你知道你需要做什么。谷歌是你的朋友吗?
http://en.wikipedia.org/wiki/Join_%28SQL%29#Left_outer_join
发布于 2011-02-16 17:56:45
试试那个:
SELECT
interview_content.title `title`,
gallery_images.img_path img
FROM
`interview`,
`interview_content`,
LEFT JOIN `gallery` ON (`interview`.`gallery_id` = `gallery`.`id` AND `gallery_images`.`default` = '1'),
LEFT JOIN `gallery_images` ON `gallery`.`id` = `gallery_images`.`id_parrent`
WHERE
`interview`.`id` = `interview_content`.`id_parrent`
AND
interview_content.id_lang = '2'
ORDER BY
interview.date DESC;https://stackoverflow.com/questions/5020074
复制相似问题