Postgres - объединение влево с использованием предложения where + Different - PullRequest
0 голосов
/ 11 июня 2019

Я хочу объединить две таблицы, используя объединение

SELECT * FROM posts
LEFT JOIN voted ON posts.post_id = voted.id

Который производит это:

enter image description here

Как мне создать запрос, используя:

ORDER BY date_posted DESC FETCH FIRST 5 ROW ONLY 

в таблице сообщений , чтобы вернуть этот результат

enter image description here

Редактировать 1 : дубликаты post_id

Как бы я сделал так, чтобы uuid в столбце user_id был только 82411850-

enter image description here

Редактировать 2 : окончательный запрос благодаря Mr.Linoff

SELECT p.post_id, p.date_posted, p.posted_by,
   v.user_id, v.votes
FROM posts p LEFT JOIN
 voted v
 ON p.post_id = v.id
 AND v.user_id = '82411580...'

ORDER BY p.date_posted DESC
FETCH FIRST 5 ROW ONLY ;

1 Ответ

1 голос
/ 11 июня 2019

У вас есть коллизия идентификаторов. Не забывайте о столбцах, которые вы выбираете.

Тогда я думаю, что у вас в основном правильная логика:

SELECT p.post_id, p.date_posted, p.posted_by,
       v.user_id, v.votes
FROM posts p LEFT JOIN
     voted v
     ON p.post_id = v.id
ORDER BY p.date_posted DESC
FETCH FIRST 5 ROW ONLY ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...