【发布时间】:2012-06-26 01:02:30
【问题描述】:
我在 Mysql 数据库中有三个表——国家、城市和酒店。他们的关系是:国家有很多城市,城市有很多酒店。
我希望能够选择给定特定国家/地区.id 的所有酒店。我的 SQL 很弱。我想出的连接语句如下,它总是返回 0 行。
SELECT
countries.name as country,
cities.name as city,
hotels.name as hotel
FROM
countries
left join cities
on countries.id = cities.country_id
left join hotels
on cities.id = hotels.city_id
WHERE
countries.id = @id
帮助?
【问题讨论】:
-
你在设置@id的值吗?尝试将@id 替换为实际值,例如 1。“countries.id = 1”,具体取决于您的实际国家/地区 ID
-
我认为该声明没有任何问题。您的国家/地区表实际上是否包含任何数据?你在
@id中传递了什么?select * from countries返回什么? -
face palm 我使用的国家 ID 没有任何匹配记录。我不能给评论一个正确的答案,我可以吗? xP
-
@Shafee - Bryan 首先发布了建议。你可以让他写下来作为答案并接受。