2013-12-13 57 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

相关问题