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。你说得对。三者都会起作用。我鼓励你学习人际关系,也就是数据库。