2017-04-03 67 views
0

在下面的查询中,我试图首先筛选network_id = 24的所有订阅,然后将payment_plans.plan_type列加入到订阅中ids相同的订阅中。WHERE语句在左外连接中的位置

我认为这是在WHERE声明的定位问题,但我不知道它在哪里 - 错误表明存在连接语句附近的语法错误

任何建议,其中错误可能是?

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... 
     ^
+1

在哪个表中是'network_id'列? –

回答

2

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 

即所有RDBMS的SQL标准和相同。

+0

@Downvoter:请解释原因! – Jens

+0

我们都发布了相同的答案。你为什么会陷入低迷,它超越了我。 – Palethorn

0

在连接语句后移动您的位置。就像这样:

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 
0

你可以试试这个

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