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の課題に参加し、あなたの新しい知識を試してください.あなたがハングの問題を取得しているように感じる場合は、多くの多くの関係では、結合テーブルを使用する必要がいくつかの問題を探します.あなたはこれを得た!
ハッピーコーディング
ジェームズ
Reference
この問題について(SQL結合), 我々は、より多くの情報をここで見つけました
https://dev.to/jsinkler713/sql-join-3kig
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
SELECT city.name FROM city
JOIN country
ON city.countryCode = country.code
WHERE country.continent = 'AFR'
SELECT city.name FROM city
JOIN country
ON city.countryCode = country.code
WHERE country.continent = 'AFR'
Reference
この問題について(SQL結合), 我々は、より多くの情報をここで見つけました https://dev.to/jsinkler713/sql-join-3kigテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol