まず、ケース準備
作成 表DEPT( ID INT プライマリー キーAUTO_INCREMENT、 名前VARCHAR(20 ) )。
INSERT INTO DEPTの値(nullで、' 財務省' ); INSERT INTO DEPTの値(nullで、' 人事部' ); INSERT INTO DEPTの値(nullで、' 科学技術' ); INSERT INTO DEPTの値(nullで、' セールス');
作成 表EMP( ID INT プライマリー キーAUTO_INCREMENT、 名前VARCHAR(20 )、 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;