はじめに、クエリの接続
異なる接続からのフィールドデータテーブルは、クエリを完了するために使用することができる場合に照会テーブルを複数接続すると、クエリ、クエリを実装することができます。
参加クエリはに分けることができます。
- インナーには、クエリに参加します
- 左は、クエリに参加します
- 右のクエリに参加
- クエリを自己結合
1.クエリをインナーに参加します
クエリの二つのテーブル修飾合計
select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2
2つのテーブルを構築します:
create table students( id int unsigned primary key auto_increment not null, name varchar(20) not null, math int not null, gender enum('男','女','保密'), cid int)engine=InnoDB default charset=utf8;
create table class( id int unsigned primary key auto_increment, name varchar(20) not null)engine=InnoDB default charset=utf8;
いくつかのデータを挿入します。
nsert into students values(0,'王问起',100,'女',3),(0,'王子见',62,'男',3),(0,'出溜溜',90,'女',2),(0,'助理云',90,'女',1);
insert into class values(0,1),(0,2),(0,3),(0,4);
データを表示:
select * from students;
select * from class;
エン:
select * from students inner join class on students.cid=class.name;
キーワードとして過ごします。
select * from students as s inner join class as c on s.cid=c.name;
概要
- エン...、条件の2つのテーブルがクエリに参加表し上...内部結合を使用して
- 二つの接続のテーブルを削除し、「交差点」コネクタクエリ
2.左のクエリに参加します
右側のデータテーブルに基づいてクエリ条件はヌルパディングの値が存在しない場合は、左メインテーブル右のテーブルデータのクエリの条件は、
クエリの結合構文を左:
表1からフィールドを選択し、表2 ON =表1フィールド2フィールド2参加左
説明:
- 左は左結合結合問合せのキーワードです
- クエリの結合条件に
- 表1は、左テーブルであります
- 表2は、右の表です
例1:使用左は学生のクラスのテーブルとクエリのテーブルを結合します:
我々は、データをヌルいくつかの例があり、右の表を試してみてください:
値を変更します。
左の接続を:
概要
- 左は左結合を使用して接続...、条件の2つのテーブルがクエリに参加表し...上
- データテーブルに従って、左右のテーブルベースのクエリ条件を連結する左、データテーブルNULL値で満たさ権利は存在しません。
3.右は、クエリに参加します
左テーブルクエリ条件に応じて右テーブルベースのデータの問合せ条件左テーブルに従ってデータがNULL値で満たされている場合、存在しません
右のクエリレンダリングに参加する:
右のクエリ構文に参加します:
表1からフィールドを選択し、右表2 ON =表1フィールド2フィールド2参加
説明:
- 右のクエリキーは右の接続で参加
- クエリの結合条件に
- 表1は、左テーブルであります
- 表2は、表の右側です
例1:学生クラス表を右を使用して、クエリのテーブルを結合します:
select * from students as s right join class as c on s.cid = c.id;
概要
右の接続は右に参加... ...、条件の2つのテーブルがクエリに参加表し上で
右データテーブルに従って右テーブルベースのクエリ条件に委ね、ヌル値で埋め左のデータテーブルは存在しません。接続します
4.自己結合クエリ
左と右のテーブルが同じテーブルあり、二つのテーブルに基づいてクエリデータは、クエリ条件に参加します。
領域テーブル・レンダリングは
、PIDは、第三の線として州のIDで説明深川市が1のpid、テーブル自体は、広東省のシンセンの一部である1の広東省時間、atitle =援助です。
例1:「広東省では、」すべての都市のためのクエリの州名
:解答
表領域を作成します。
create table areas(
id varchar(30) not null primary key,
title varchar(30),
pid varchar(30)
)engine=InnoDB default charset=utf8;
データのインポート
insert into areas values('1','广东省',default),('2','河南省',default),('3','深圳 市','1'),('4','广州市','1'),('5','南山区','3'),('6','宝安区','3');
表示データ:
自己結合クエリ:
select * from areas as c inner join areas as p;
select * from areas as c inner join areas as p on c.pid=p.id;
ディスプレイ:
select c.id,c.title,c.pid,p.title from areas as c inner join areas as p on c.pid=p.id;
すべての都市の「広東省」などの名前のクエリ県:
概要
- クエリを自己加入二つのテーブルにテーブルをシミュレートすることであっても、テーブル、クエリ、その後、左右、および。
- 接続は、このテーブル特別な接続、接続やテーブルそのものであるので、