如何解决MYSQL:通过联接几个表查询世界数据库
问题是:
给出要在北美每个国家/地区显示的SQL命令:
- 首都的名称
- 国家名称
- 官方语言
- 说官方语言的人的百分比
结果应为字母城市名称顺序,在国家名称顺序内,在语言顺序内,在百分比内。获取错误消息不是唯一的表别名国家/地区。
SELECT
city.name AS name,country.name AS name,countrylanguage.language,countrylanguage.percentage
FROM country,countrylanguage,city
INNER JOIN country ON city.countrycode = country.code
INNER JOIN city ON country.capital = city.id
INNER JOIN countrylanguage on country.code = countrylanguage.countrycode
WHERE
country.continent = 'North America' and
countrylanguage.isofficial = 'T' and
country.capital = city.id
ORDER BY
city.name ASC,country.name,country.language,countrylanguage.percentage ASC;
解决方法
查询的FROM ... JOIN
部分不正确。试试这个。
SELECT
city.name AS name,country.name AS name,countrylanguage.language,countrylanguage.percentage
FROM country
INNER JOIN country ON city.countrycode = country.code
INNER JOIN city ON country.capital = city.id
INNER JOIN countrylanguage on country.code = countrylanguage.countrycode
WHERE
country.continent = 'North America' and
countrylanguage.isofficial = 'T' and
country.capital = city.id
ORDER BY
city.name ASC,country.name ASC,country.language ASC,countrylanguage.percentage ASC;
当您说FROM country,city,countrylanguage
时,与上述代码等效,但是没有ON
子句。这是老式的逗号联接语法(在1992年被显式JOIN语法取代)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。