Как запросить одну таблицу, но получить связанную информацию из другой таблицы? - PullRequest
1 голос
/ 30 декабря 2010

например, у меня есть две таблицы:

posts {id,user_id,date}
design{user_id, bg_color}

и у меня есть, например, post id of 18, я хочу получить таблицу дизайна по тому же user_id этого поста (18)

как я могу запросить это?

извините за эту глупость, я в замешательстве?:))

Ответы [ 6 ]

4 голосов
/ 30 декабря 2010
SELECT design.user_id, design.bg_color
FROM posts
JOIN design
  ON posts.user_id = design.user_id
WHERE posts.id = 18

Другими словами, сначала мы выбираем из posts, где id равно 18;
, затем мы соединяем design строки, в которых user_id равно user_id postsrow.
Мы извлекаем соответствующие user_id и bg_color из таблицы design.

Обратите внимание, что если есть несколько строк с одинаковым design.user_id, вы получите несколько строк назад -пример:

posts.id  | posts.user_id
 1           5
 3           2
 18          9


design.user_id | design.bg_color
 2                '#aaffcc'
 5                'red'
 5                'blue'
 9                '#000000'
 9                '#cafe00'

результат запроса:

posts.id | posts.user_id | design.user_id | design.bg_color
 18         9               9                '#000000'
 18         9               9                '#cafe00'
2 голосов
/ 30 декабря 2010
SELECT design.*
  FROM design
  JOIN posts on posts.user_id = design.user_id
 where posts.ID = 18
1 голос
/ 30 декабря 2010
SELECT `design`.* FROM `design`, `posts` WHERE `posts`.`user_id` = `design`.`user_id` AND `posts`.`id` = 18
1 голос
/ 30 декабря 2010

Ты имеешь в виду это?Вы ищете одну или несколько записей из таблицы design?

0 голосов
/ 30 декабря 2010

Ваш вопрос немного сбивает с толку, но я думаю, что это сработает:

SELECT * FROM `posts` LEFT JOIN `design` USING (`user_id`) WHERE `posts`.`id` = 18
0 голосов
/ 30 декабря 2010
    select * from posts join 
design on 
posts.user_id=design.user_id 
where posts.id=18
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...