WHERE 语句在左外连接中的位置



在下面的查询中,我首先尝试筛选network_id = 24的所有订阅,然后将列payment_plans.plan_type连接到ids相同的订阅。

我认为 WHERE 语句的定位存在问题,但我不确定它在哪里 - 错误表明 join 语句附近存在语法错误

关于错误可能在哪里的任何建议?

SELECT DISTINCT subscriptions.user_id, subscriptions.payment_plan_id, payment_plans.plan_type
FROM subscriptions WHERE network_id = 24
LEFT OUTER JOIN payment_plans ON subscription.payment_plan_id = payment_plans.id

ERROR:  syntax error at or near "LEFT"
LINE 3: LEFT OUTER JOIN payment_plans ON subscription.payment_plan_i...
        ^

您的查询应该是:

SELECT DISTINCT subscriptions.user_id, subscriptions.payment_plan_id, payment_plans.plan_type
FROM subscriptions 
LEFT OUTER JOIN payment_plans ON subscription.payment_plan_id = payment_plans.id
WHERE network_id = 24

您可以查看 SELECT 语句的文档,特别是本节。

SQL 语法是 select ... from ... join .. on ..where

SELECT DISTINCT subscriptions.user_id, subscriptions.payment_plan_id, payment_plans.plan_type
FROM subscriptions 
LEFT OUTER JOIN payment_plans ON subscription.payment_plan_id = payment_plans.id
WHERE network_id = 24

这是SQL标准,对于所有RDBMS都是一样的。

在连接语句之后移动位置。喜欢这个:

SELECT DISTINCT subscriptions.user_id, subscriptions.payment_plan_id, 
payment_plans.plan_type
FROM subscriptions 
LEFT OUTER JOIN payment_plans ON subscription.payment_plan_id = 
payment_plans.id 
WHERE network_id = 24
你可以

试试这个

SELECT DISTINCT subscriptions.user_id, subscriptions.payment_plan_id, payment_plans.plan_type FROM subscriptions LEFT OUTER JOIN payment_plans ON subscription.payment_plan_id = payment_plans.id WHERE subscriptions.network_id = 24

最新更新