MySQLの複数テーブルには、研究ノートを照会します

 

まず、ケース準備  

作成 DEPT(
ID INT  プライマリー キーAUTO_INCREMENT、
名前VARCHAR20 
)。
コードの表示
INSERT  INTO DEPTのnullで' 財務省' );
 INSERT  INTO DEPTのnullで' 人事部' );
 INSERT  INTO DEPTのnullで' 科学技術' );
 INSERT  INTO DEPTのnullで' セールス');
コードの表示
作成 EMP(
ID INT  プライマリー キーAUTO_INCREMENT、
名前VARCHAR20 )、
DEPT_IDのINTを
)。
コードの表示
INSERT  INTO EMPのNULL' ジョン・ドウ'1。);
 INSERT  INTO EMPのNULL' ジョン・ドウ'2 );
 INSERT  INTO EMPのNULL' '3。);
 INSERT  INTO EMPのNULL' 劉粲'5)。
コードの表示

デマンド:情報部門の従業員情報と対応する部署をチェックしてください

第二に、クエリのデカルト積は、クエリが接続されており、左右の外側には、クエリは、完全な外側のクエリに参加する参加します

①直積お問い合わせ

結果を乗じて得た2つの表が:DEPT、EMPから選択します*;

テーブルにはA&Mレコードを残し、nは右の記録を持っている場合は、その結果をチェックアウトすることはメートル×n個の部分です。これらの結果は、多数含まれ、誤った結果、通常はこのクエリを使用しませんが。

内のクエリに参加②

テーブルの左と右の表は、一部のレコードがあります

SQL:e.dept_id = d.id上のemp eを参加DEPT Dの内側から*選択します。

③左外側のクエリに参加:基本的な内部テーブルプラス、テーブルの左右にクエリを結合するレコードがありません

部門の従業員でない人が表示されている一方で、部門に対応する従業員情報をチェック

SQL:DEPT dから選択*はe.dept_id = d.id上のemp eを参加左;

右の外側のクエリに参加④:接続を基に含むクエリ、プラステーブルテーブルの左右には、レコードを持っていません

スタッフ部門をリストしていない人が、部門に対応する従業員情報をチェック

SQL:右e.dept_id = d.idにEMP Eに参加dはDEPTから選択*;

完全外部クエリに参加⑤:基本的な内部は、レコードがないテーブルにクエリを結合するプラスの表の左と右、左と右のテーブルのテーブルには、レコードを持っていません。

  スタッフ部門といくつかの部門を持っていない従業員のリストがいない間、セクタに対応する従業員情報をチェック

SQL:DEPT Dフルから選択* e.dept_id = d.id上のemp eを参加;( エラー:mysqlは完全外部結合問合せをサポートしていません

  完全外部をシミュレートするには、キーワード組合によるクエリに参加

SQL

select * from dept left join emp on emp.dept_id = dept.id
union
select * from dept right join emp on emp.dept_id = dept.id;

 

おすすめ

転載: www.cnblogs.com/rmxd/p/11416328.html