postgresql lef连接不起作用

时间:2018-11-14 14:12:53

标签: postgresql left-join

我想将表B的所有列添加到表A中,并基于公共列(数字类型)进行联接。我正在尝试使用LEFT JOIN进行操作,但添加的列均为空白。这是不可能的,因为表b除其他外存储了相同的ID值。我哪里错了?

Select * from "2017_01" left join "Registry_2017" on '2017_01.ID' = 'Registry_2017.ID';

1 个答案:

答案 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";

所以查询应该是这样。即使我已经知道答案了,但它也能正常工作。