Mysql 如何从同一选择中的第二个表中获取相关数据?
我有两张桌子:Mysql 如何从同一选择中的第二个表中获取相关数据?,mysql,sql,Mysql,Sql,我有两张桌子: 'people' id | name | which_image -------------------------------- 1 | Joey | 1 2 | Bobby | 2 3 | Jimmy | 3 'images' id | filename -------------------------------- 1 | joe_f
'people'
id | name | which_image
--------------------------------
1 | Joey | 1
2 | Bobby | 2
3 | Jimmy | 3
'images'
id | filename
--------------------------------
1 | joe_face.jpg
2 | bob_angry.jpg
3 | jim_laughs.jpg
如何进行一次选择以获取“people”表中两个人的所有列,并在同一查询中获取他们的文件名?我尝试过这个,但它返回一个空集:
SELECT p.*, i.filename FROM people p, images i
WHERE ( p.id = 1 OR p.id = 3 )
AND p.which_image = i.id
试试这个:
SELECT p.*,
i.filename
FROM people p
INNER JOIN images i
ON p.which_image = i.id
WHERE p.id = 1
OR p.id = 3;
由于“图像”中没有真正的外键,请按如下方式使用子选择:
SELECT p.*, (select filename from images i where i.id=p.which_image) as filename
FROM people p
WHERE p.id in (1,3)
你的问题是正确的,我认为问题出在第页。。。。请尝试使用p.id、p.name等列名。此查询完全正确。您使用的是哪个Mysql版本。我认为所有这些答案都可以,但我最喜欢您的答案;对于像我这样仍然觉得joins有点神秘的人来说,这是最简单明了的:——)谢谢。谢谢Eric。你说得对。三者都会起作用。我鼓励你学习人际关系,也就是数据库。