Rosellx:
恩赦私は、サブクエリの書き方を学習するプロセスにいるように、この質問は単純すぎる場合。私はINNERでSQL文がSELECT句のサブクエリを1に置き換えることができ、JOIN方法の例を示しており、オンラインこのガイドに出くわしました。
国(コード、名前、大陸、地域、surface_area)と都市(名前、COUNTRY_CODE、city_proper_pop、metroarea_pop) - 2つのテーブルがあります。
内部結合を持つSQLステートメント
SELECT countries.name AS country, COUNT(*) AS cities_num
FROM cities
INNER JOIN countries
ON countries.code = cities.country_code
GROUP BY country
ORDER BY cities_num DESC, country
LIMIT 9;
次に、この文は、SELECT句のサブクエリでSQL文で置き換えられ
SELECT countries.name AS country,
(SELECT COUNT(*)
FROM cities
WHERE countries.code = cities.country_code) AS cities_num
FROM countries
ORDER BY cities_num DESC, country
LIMIT 9;
これ示す同じ結果のテーブルを。
私の質問は:ネストされたSQLクエリは、この条件含めることができますなぜ私はわからないよcountries.code = cities.country_code任意の参加行うことなく、WHERE句の中に。ネストされたクエリのみからの結果を描画するのでcitiesテーブル、それが指定されていない国のテーブルを。
ホープ誰かが私に説明することができます。前もって感謝します。
ガネーシュChandrasekaranは:
これは、相関サブクエリと呼ばれています。
外側のクエリのすべての行に対しては、プログラミング用語では、ループ内のループのようなものを、内側のクエリを実行します。
より詳しい情報..