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