2014-11-24 112 views
0

我想從兩個表中取出JOIN,並將結果表與第三個表加入但是它的拋出錯誤,讓我知道我在這裏做錯了什麼 -從兩個表加入,然後從結果加入到第三個表mysql

SELECT e.id as e_id, e.name as e_name, e.artist_id as e_artist_id, e.event_date as e_date, 
     v.id as v_id, v.name as v_name, v.address as v_address, v.latitude as v_latitude, v.longitude as v_longitude 
FROM events e 
LEFT JOIN venues v 
ON e.venue_id = v.id WHERE v.id = 12 
LEFT JOIN artists a 
ON e.artist_id = a.id 
+1

什麼錯誤是將其擲 - 因爲這就像一個線索 – Strawberry 2014-11-24 21:37:18

+0

#1064 - 你在你的SQL語法錯誤;檢查與您的MySQL服務器版本對應的手冊,以找到正確的語法,以便在'LEFT JOIN artists'附近使用' ON e.artist_id = a.id 第6行的限制0,25' – Trialcoder 2014-11-24 21:37:54

+2

WHERE在最後 - 儘管如果它是一個左加入那麼應該是AND – Strawberry 2014-11-24 21:38:08

回答

1

您需要將WHERE條款更改爲AND -

SELECT e.id as e_id, e.name as e_name, e.artist_id as e_artist_id, e.event_date as e_date, 
     v.id as v_id, v.name as v_name, v.address as v_address, v.latitude as v_latitude, v.longitude as v_longitude 
FROM events e 
LEFT JOIN venues v 
ON e.venue_id = v.id AND v.id = 12 
LEFT JOIN artists a 
ON e.artist_id = a.id 
+1

這會給出意想不到的結果 - 'WHERE v.id = 12'應該處於ON狀態。 – Siyual 2014-11-24 21:43:29

+0

你不能在'ON'中放置'WHERE' @Siyual,它會導致語法錯誤。這是如何產生意想不到的結果? – 2014-11-24 21:44:37

+0

@JayBlanchard - 這是否定'外部連接'。我懷疑OP想要類似'left left venues v on e.venue_id = v.id and v.id = 12' ... – sgeddes 2014-11-24 21:48:35