这个SQL联接语法有什么问题

时间:2019-01-24 13:57:54

标签: sql postgresql

我有这段代码,但是它没有用正确的计数(它返回0)来反馈我,因为每列中都有许多相同的值..您知道什么地方不对吗?

select count(*)
from "accidents"
inner join "Vechicles"
on 'accidents.Accident_Index'='Vechicles.Accident_Index';

1 个答案:

答案 0 :(得分:1)

单引号'用于字符串常量,而不用于标识符。

Identifiers either need double quotes "(不建议使用)或什么都不做。而且,如果您使用这些令人恐惧的双引号创建了表和列,则需要将每个元素单独引用,而不是将所有元素都引用为单个引用:

select count(*)
from "accidents"
  inner join "Vechicles"
     on "accidents"."Accident_Index" = "Vechicles"."Accident_Index";

条件'accidents.Accident_Index'='Vechicles.Accident_Index'比较两个不相同的字符串值,因此您的陈述与以下内容相同:

select count(*)
from "accidents"
  inner join "Vechicles"
     on false