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)

^ここで、lab2.country、lab2.city、lab2.country_languageに内部参加する必要があります^

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

問題は、3つのテーブルで結合することです。最初の国と都市、次に国とcountry_language。主キーは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のINNERJOINING国であり、次にすでにINNERJOINEDテーブルの都市です。ありがとう!

于 2013-02-24T03:24:43.720 に答える