2013-12-13 75 views
0

這是我第一次使用sql,我的第一個任務是將兩個表連接在一起。我看到了一個類似的例子,說明它在這個例子中是如何工作和嘗試過的,但沒有奏效。我不知道爲什麼我收到一個錯誤如何修復將兩個表連接在一起的錯誤

SELECT os.city_id 
     ,os.park_id AS slide_id 
from om_slide AS os 
where os.city_id = 12 
LEFT JOIN ga_park gt ON (os.park_id=gt.park_id) 

我知道它最多是給我一個結果,其中os.city_id = 12。只是我的左邊的聲明不起作用,我不知道爲什麼

+1

'從om_slide AS OS LEFT JOIN ga_park GT ON(os.park_id = gt.park_id),其中os.city_id = 12' –

+0

你爲什麼加入這裏?我看不到你從哪個表中選擇了什麼。 –

回答

1

您的偏好可能不同,但我發現explicit joins更易於閱讀。您的LEFT JOIN可能會顯示爲不起作用,因爲您沒有從該表中選擇任何內容。按照我對疑問的效果評論我喜歡的東西去:

SELECT 
    os.city_id, os.park_id AS slide_id, gt.* 
FROM 
    om_slide AS os 
LEFT OUTER JOIN 
    ga_park AS gt 
ON 
    os.park_id=gt.park_id 
WHERE 
    os.city_id = 12 
2

如果你只是想om_slide表的信息給定city_id,下面應該工作。

SELECT os.city_id 
     , os.park_id AS slide_id 
FROM om_slide AS os 
WHERE os.city_id = 12 

如果你想從ga_park表的更多信息還,對於給定city_id,然後使用以下。

SELECT os.city_id 
     , os.park_id AS slide_id 
     , gt.park_name -- or whatever additional field(s) you want from ga_park 
FROM om_slide AS os LEFT JOIN ga_park AS gt ON os.park_id = gt.park_id 
WHERE os.city_id = 12 
+0

這裏不是'JOIN'還是多餘的嗎?它是什麼選擇? –

+0

猜測OP的最終目標是從'ga_park'表中獲取更多數據。如果它只是給定'city_id'的'park_id',那麼你是對的,不需要連接'om_side'和'ga_park'表,OP可以查詢'om_slide'表。 – Shiva

相關問題