SQL結合


基本SQL結合



それで、SQLの中にいくつかのテーブルがあります.すごい!JOINいつものように、例を見て話をするのが一番いいと思います.我々は、私が見つけたものに近い問題を借りるつもりですhackerRank 先日.基本的には都市、田舎のテーブルがありました.
CityテーブルにはCal国名コードがあります.これはCountry表のコードcolと一致します.これは、それが都市テーブルにあるとき、外部キーと呼ばれて、それがそれ自身のテーブル国にいるとき、主キーです.

タスク:すべての都市を取得するクエリを書くw /大陸の


ステップ1 : SELECT文


それで、これらの2つのテーブルを与えられて、あなたが前に結合をしたことがないならば、私はあなたにこの質問の最初の部分について考えて欲しいです.

すべての都市を取得するクエリを書く


さて、この最初の部分は1つのテーブルを持っていた場合と同じです.だから他のテーブルについてはまだ心配しないでください
SELECT city.name FROM city

手順2。結合文


我々は、我々がそれから何も返さないとしても、他のテーブル国を参照する必要があります.以来WHERE それの範囲内のcolに依存するでしょうJOIN それはアクセスを取得します.
JOIN country
完了.

ステップ3.ON
OKではない.SQLはとても素晴らしいですが、まだこれらの接続方法を説明する必要がありますので、これらのテーブル間で一致する2つのキーを説明する必要があります.

マッチする2つのcolに対する等式を書き込みます


ON city.countryCode = country.code

ステップ4。どこ


我々が国表に加わった今、我々は通常我々がそうするように、我々はどこで使うことができます.この時点で私は一般的にスーパーテーブルを作成したことを想像します.
我々は実際にはないが、我々は各テーブル内のすべてのコロにアクセスする必要があります.我々が本当にそれを必要としない限り、すべてのこの余分の国データで各々の都市入場を持つことは、本当に非能率的です.しかし、我々が現在行うように、我々が行動することができる結合を使ってください.我々は、我々の選択を大陸アフリカのそれらの国だけに基づきます.
都市は、それがここにそれ自身のテーブルであるかもしれない大陸に直接の接続を持っていません、しかし、彼らが国に直結しているので、我々はどこで我々のコントリーを問い合わせることができます.大陸は' afr 'に等しい.
WHERE country.continent = 'AFR'

thatsパズルの最後の作品!SQLクエリの全ブロックはこのようになります.
SELECT city.name FROM city
JOIN country
ON city.countryCode = country.code
WHERE country.continent = 'AFR'
alats、thatsは1対多の関係で2つの異なるテーブルの間のしっかりした基本的な結合です.は、基本的なSQLの課題に参加し、あなたの新しい知識を試してください.あなたがハングの問題を取得しているように感じる場合は、多くの多くの関係では、結合テーブルを使用する必要がいくつかの問題を探します.あなたはこれを得た!
ハッピーコーディング
ジェームズ