内部結合とは
両方のテーブルにあるデータのみを取り出す のが内部結合です。
2つのテーブルにあって、合体できるデータのみを取り出します。
※どちらかのテーブルにデータがあれば取り出すのが外部結合です。
1つのテーブルにしかなくて、合体しないデータも取り出します。
基本構文
1 2 3 4 5 6 7 8 9 10 |
select テーブル名1.列名, テーブル名2.列名, ... from テーブル名1 inner join テーブル名2 on テーブル名1.列名 = テーブル名2.列名; |
例題:cityを「町名」として一覧を表示してください。またcityに対応するCountryCodeは、「国名」としてCountryCodeではなくcountryテーブルのNameを表示するようにしてください。必要なカラムは、[ID][町名][国名]となります。
1 2 3 4 5 6 7 8 9 10 11 12 |
use world; select city.ID, city.Name as "町名", country.Name as "国名" from city inner join country on city.CountryCode = country.Code; |
where句で絞り込みながら内部結合でテーブル結合
基本構文
1 2 3 4 5 6 7 8 9 10 11 12 |
select テーブル名1.列名, テーブル名2.列名, ... from テーブル名1 inner join テーブル名2 on テーブル名1.列名 = テーブル名2.列名 where 絞り込み条件; |
例題:cityを「町名」として Ja から始まる「国名」で一覧を表示してください。またcityに対応するCountryCodeは、「国名」としてCountryCodeではなくcountryテーブルのNameを表示するようにしてください。必要なカラムは、[ID][町名][国名]となります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
use world; select city.ID, city.Name as "町名", country.Name as "国名" from city inner join country on city.CountryCode = country.Code where country.Name like 'Ja%' ; |