2017-04-03 74 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