Операторы SQL из нескольких таблиц - PullRequest
0 голосов
/ 19 сентября 2018

Учитывая следующие две таблицы:

Users table 
id (pk) 
name
avatar 

Comments table 
id (pk) 
id_pic (fk)
id_user (fk)
text 
date

Как мне создать инструкцию SQL, которая возвращает всю информацию для Pics с id = 7?

Важно: Я хочу получить информацию из Комментария (идентификатор, текст, дата) и от пользователя, который написал комментарий (идентификатор, имя, аватар)

Спасибо!

Редактировать: Я пробовал это, но он возвращает мне 1 строку, когда это должно быть 2:

SELECT c.id, c.id_user, u.avatar, u.name, c.date, c.text 
FROM Comments c 
INNER JOIN Users u 
ON u.id=c.id_user AND c.id_pic=7;

Редактировать 2: Некоторые данные:

Users
id   name   avatar
1    joe    true
2    lee    false

Comments
id   id_pic   id_user  text         date
1    7        2        cool         2018-09-09
2    7        1        great        2018-09-10
3    10       1        ugly         2018-09-10

Редактировать 3: Когда я делаю это, все работает нормально:

SELECT c.id, c.id_user, c.date, c.text 
FROM Comments c 
INNER JOIN Users u
ON u.id=c.id_user AND c.id_pic=7;

Но в строках не отображается информация, которая мне нужна (вы.avatar и u.name): (

1 Ответ

0 голосов
/ 19 сентября 2018

Этот запрос работал для меня.Если вы хотите получить аватар и имя, вы должны включить его в оператор SELECT.

SELECT c.id, c.id_user, c.date, c.text, u.avatar, u.name 
FROM dbo.comments c
INNER JOIN dbo.users u ON u.id = c.id_user
WHERE c.id_pic = 7

Надеюсь, это то, что вы искали

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...