インナーには、SQLのサブクエリに参加置き換えます

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は:

これは、相関サブクエリと呼ばれています。

外側のクエリのすべての行に対しては、プログラミング用語では、ループ内のループのようなものを、内側のクエリを実行します。

より詳しい情報..

https://www.geeksforgeeks.org/sql-correlated-subqueries/

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=16822&siteId=1
おすすめ