如何在将两个表连接在一起时修复错误

时间:2013-12-13 18:00:06

标签: sql

这是我第一次使用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的地方,它给了我一个结果。只是我的左声明不起作用,我不知道为什么

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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