【发布时间】:2018-12-10 00:56:52
【问题描述】:
我觉得这个问题一定已经在某个地方得到了回答,但我的搜索没有找到任何相关的东西。如果有人能够链接到另一个答案,我可以接受将其标记为重复并关闭。
我有三个这样的表:
users(id)
things1(id, user_id, thing1_text)
things2(id, user_id, thing2_text)
就本示例而言,假设users 表中只有一个用户的id 为1。
假设things1 看起来像这样:
id12
user_id11
thing1_textim a thing 1im a thing 1 too
而 things2 看起来像这样:
id12
user_id11
thing2_textim a thing 2im a thing 2 too
我正在尝试创建将返回以下内容的查询:
user_id1111
thing1_textim a thing 1im a thing 1 tooNULLNULL
thing2_textNULLNULLim a thing 2im a thing 2 too
我的第一次尝试看起来很天真:
select users.id as user_id
, things1.thing1_text
, things2.thing2_text
from users
full outer join things1
on things1.user_id = users.id
full outer join things2
on things2.user_id = users.id;
但是,这并没有将NULL 放在任何字段中,而是将它们全部组合在一起 - 我敢肯定,当您阅读查询时,您可能会想到更多的 SQL:D
无论如何。这就是我所在的地方。任何帮助都将不胜感激。
【问题讨论】:
标签: sql postgresql join outer-join