0

我有一个这样的查询:

SELECT tm.first_name, tm.last_name, tm.id, i.thumb 
FROM team_members tm, images i, tm_image tmi 
WHERE tm.id = tmi.tm_id AND tmi.image_id = i.id

效果很好,我取回了名称等以及通过如下表格链接到个人的图像:

individual_id -> individual_id - image_id <- image_id

问题是,如果个人没有附加图像,则查询不会返回任何内容。如果没有图像数据,我想要的查询只是返回 NULL。我会使用 if 语句吗?

谢谢!

4

2 回答 2

2

你需要做一个 LEFT JOIN 来解决你的问题

SELECT tm.first_name, tm.last_name, tm.id, i.thumb 
FROM team_members tm
LEFT JOIN tm_image tmi ON (tmi.image_id = i.id)
LEFT JOIN images i ON (tm.id = tmi.tm_id);

未经测试,可能包含错误。

使用上面的查询,如果成员没有图像,则值tm.idi.thumb都将是NULL

你可以在这里找到一些例子:http: //phpweby.com/tutorials/mysql/32

于 2012-05-10T12:17:05.647 回答
2

使用LEFT JOIN. 像这样:

SELECT 
   tm.first_name, 
   tm.last_name, 
   tm.id, 
   i.thumb 
FROM 
 team_members tm
 LEFT JOIN tm_image tmi 
   ON tm.id = tmi.tm_id
 LEFT JOIN images i
   ON tmi.image_id = i.id
于 2012-05-10T12:17:35.853 回答