我想将表B的所有列添加到表A中,并基于公共列(数字类型)进行联接。我正在尝试使用LEFT JOIN进行操作,但添加的列均为空白。这是不可能的,因为表b除其他外存储了相同的ID值。我哪里错了?
Select * from "2017_01" left join "Registry_2017" on '2017_01.ID' = 'Registry_2017.ID';
答案 0 :(得分:0)
您做错了。.我不知道您为什么可以对Table
调用"2017_01"
并使用权利,与此'2017_01.ID'
不同。
'
=单引号标识为String
"
=双引号标识为Table or Column
,以避开命名
Select
*
From
"2017_01"
left join "Registry_2017" on '2017_01.ID' = 'Registry_2017.ID';
因此,当您执行'2017_01.ID' = 'Registry_2017.ID'
时,条件将始终变为false
,因为这两个不同的String
不相等。 Postgresql
认为条件不是Table and Column
而是String
,因为您使用的是Single quote
Select
*
from
"2017_01"
left join "Registry_2017" on "2017_01"."ID" = "Registry_2017"."ID";
所以查询应该是这样。即使我已经知道答案了,但它也能正常工作。