0

问题是:“列出所有官方语言及其使用该语言的人数(不是百分比)。对于表格中的每条记录,还应显示国家名称和大写字母。您的结果应首先按国家名称排序(从 A到 Z),然后是发言者的数量(从大到小)。”

我拥有的表是 lab2.country、lab2.city 和 lab2.country_language。

$query5 = "SELECT c.name AS country, c.capital,l.language,c.population,l.percentage, ((c.population * (l.percentage * 0.01)) :: bigint) AS speakers

FROM lab2.country c INNER JOIN lab2.city ci ON (c.country_code = ci.country_code) INNER        JOIN lab2.country_language
ON (c.country_code = l.country_code)

^这是我需要 INNER JOIN lab2.country、lab2.city 和 lab2.country_language 的地方^

WHERE l.is_official is true
ORDER BY c.name ASC, speakers DESC";

问题是加入三个表。第一个国家和城市,然后是国家和国家语言。主键是 country_code。

4

1 回答 1

0
"SELECT c.name AS country, ci.name AS capital, l.language,
((c.population * (l.percentage * 0.01)) :: bigint) AS speakers

FROM lab2.country c INNER JOIN lab2.country_language l ON (c.country_code = l.country_code) JOIN lab2.city ci ON (c.country_code = ci.country_code)

WHERE l.is_official is true AND (ci.id = c.capital)
ORDER BY c.name ASC, speakers DESC";

粗体字是我一直在寻找的答案。这是 country_language 上的 INNER JOINING 国家/地区,然后是已经 INNER JOINED 表上的城市。谢谢!

于 2013-02-24T03:24:43.720 回答