Как получить связанные данные из 2-й таблицы в том же списке? - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть две таблицы:

'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

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Поскольку в «изображениях» нет реального внешнего ключа, используйте дополнительный выбор следующим образом:

SELECT p.*, (select filename from images i where i.id=p.which_image) as filename  
FROM people p 
WHERE p.id in (1,3)
0 голосов
/ 27 февраля 2012

Попробуйте это:

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;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...