Postgresql 左连接有什么问题?
我正在使用postgres,我正在尝试使用left join连接两个表。我希望包含左侧的所有列和右侧的所有列Postgresql 左连接有什么问题?,postgresql,left-join,Postgresql,Left Join,我正在使用postgres,我正在尝试使用left join连接两个表。我希望包含左侧的所有列和右侧的所有列 SELECT * FROM table1 a LEFT JOIN table2 b on a.id = b.id; 当我运行它时,没有新的列,只有表1中的列在表中。我想不出是怎么回事。我也尝试进行外部联接,但表1中仍然没有新的列 下面是我想做的一个例子: tabel1: +------------+---------------+--------------+ | id
SELECT * FROM table1 a
LEFT JOIN table2 b on
a.id = b.id;
当我运行它时,没有新的列,只有表1中的列在表中。我想不出是怎么回事。我也尝试进行外部联接,但表1中仍然没有新的列
下面是我想做的一个例子:
tabel1:
+------------+---------------+--------------+
| id | COMPANY_NAME | COMPANY_CITY |
+------------+---------------+--------------+
| 18 | Order All | Boston |
| 15 | Jack Hill Ltd | London |
| 16 | Akas Foods | Delhi |
| 17 | Foodies. | London |
| 19 | sip-n-Bite. | New York |
+------------+---------------+--------------+
table2:
+--------------+-----------+
| ITEM_NAME | id |
+--------------+-----------+
| Chex Mix | 16 |
| Cheez-It | 15 |
| BN Biscuit | 15 |
| Mighty Munch | 17 |
| Pot Rice | 15 |
| Jaffa Cakes | 18 |
| Salt n Shake | |
+--------------+-----------+
我希望最终结果如下所示:
id COMPANY_NAME COMPANY_CITY ITEM_NAME
---------- ------------------------- ------------------------- ----------
16 Akas Foods Delhi Chex Mix
15 Jack Hill Ltd London Cheez-It
15 Jack Hill Ltd London BN Biscuit
17 Foodies. London Mighty Munch
15 Jack Hill Ltd London Pot Rice
18 Order All Boston Jaffa Cakes
19 sip-n-Bite. New York
我还检查以确保不同表中的两个ID之间存在匹配,并且没有匹配
我使用psql运行了查询,结果显示:
SELECT 2000
然后看看我有什么专栏,我跑
\d table1
这里有一个指向我试图实现的sql FIDLE的链接:您可以显式指定每个表的列。使用aterix,看起来是这样的:
SELECT b.*
FROM table1 a
LEFT JOIN table2 b
on a.id = b.id;
使用以下数据进行测试:
我希望包含左侧的所有列和右侧的所有列
SELECT * FROM table1 a
LEFT JOIN table2 b on
a.id = b.id;
严格地说,你没有。您想要的结果只显示一个id
列。您可以通过join中的
USING
子句来实现这一点:
选择*
来自表1 a
使用(id)左连接表2b;
使用(A,b,…)的形式的子句是左表上的缩写。A=右表。A和左表。b=右表。b….
另外,使用
意味着每对等效列中只有一列
将包含在联接输出中,而不是两者都包含
这是绝对不可能的:
当我运行它时,没有新的列,只有表1中的列在表中
您的客户端中的显示肯定有问题。或者其他一些误解。有些客户端确实存在重复列名的问题,这可以通过我的查询消除
这将来自查询:
将表3创建为
挑选*
来自表1 a
使用(id)左连接表2b;
请发布一些有代表性的数据。分享您的数据也会有帮助。现在,我们不知道您正在尝试加入什么。您正在使用什么工具来运行此查询?是的,但是您正在使用什么查询工具?pgadmin?psql?还有什么吗?您可以从psql复制/粘贴查询及其结果吗?一定是误会了……我也试过了,也有同样的问题。我明白了。我们需要一些有代表性的数据来帮助你。