在下面的查询中,我首先尝试筛选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