有人可以帮我指出这个双LEFT OUTER JOIN查询的错误吗?

时间:2015-11-12 15:53:36

标签: sql postgresql

我正在尝试计算目前没有"职位的帐户数量"或者"验证"。为了做到这一点,我需要在验证和位置表上执行两个左外连接。这是我到目前为止构建的查询:

SELECT COUNT(*)
FROM
    "accounts"
    LEFT OUTER JOIN
    "verifications" ON "accounts.id = verifications.account_id" 
    LEFT OUTER JOIN
    "positions" ON "accounts.id = positions.account_id"
WHERE "verifications.account_id = null" AND "positions.account_id = null";

这似乎不是正确的查询。我的控制台产生了这个错误:

SyntaxError: unexpected tCONSTANT, expecting end-of-input
SELECT * FROM "accounts" LEFT OUTER JOIN "verifications"

在帐户附近的语句开头看起来有问题。我已经检查了一些关于双左外连接的教程,并且我已经链接到正确的字段上。我对可能出错的地方感到茫然。非常感谢帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

如果您想要或需要使用双引号,请执行以下操作:

ON "accounts"."id" = "verifications"."account_id"

双引号包装每个标识符。除非标识符中有非法字符(也不是那么好),否则使用双引号是一个不好的意思

答案 1 :(得分:1)

写下你的查询:

SELECT COUNT(*)
FROM accounts
LEFT OUTER JOIN verifications
ON accounts.id = verifications.account_id
LEFT OUTER JOIN positions
ON accounts.id = positions.account_id
WHERE verifications.account_id is null AND positions.account_id is null;