[DataBase] Join
1. Inner Join
1-1) Cross Join
クロス結合は2つのテーブルCartesian積演算の結果である.
これは,特に条件がなく,表Aの各行と表Bの各行を組み合わせた結果である.
SQL文を結合するには、2つの表現で作成できます.
SELECT *
FROM employees
CROSS JOIN dept_emp;
SELECT *
FROM employees, dept_emp;
1-2) Inner Join
最もよく使われる結合フレーズの1つです.
2つのテーブルの列を結合して新しいテーブルを生成します.
Cross Joinを実行した結果,結合条件文を満たすレコードを返すと考えられる.
SELECT *
FROM employees
INNER JOIN dept_emp
ON employees.emp_no = dept_emp.emp_no;
SELECT *
FROM employees, dept_emp
WHERE employees, emp_no = dept_emp.emp_no;
2. Outer Join
汎用カラム名に基づいて結果セットを作成する内部結合とは異なります.
外部結合は、条件文で不満足な行を表す結合です.
したがって,結合を行う場合,片側のテーブルにデータがなくても結合結果に含める.
2-1) Left Outer Join
左外部ジョインは、テーブルAのすべてのデータとテーブルBに一致するレコードとを含むジョインです.
SELECT *
FROM table1
LEFT OUTER JOIN table2
ON table1.n = table2.n;
2-2) Right Outer Join
右外部ジョインは、テーブルBのすべてのデータと、テーブルAに一致するレコードとのジョインです.
SELECT *
FROM table1
RIGHT OUTER JOIN table2
ON table1.n = table2.n;
2-3) Full Outer Join
完全外部結合はMySQLでUNIONを使用して実現できます.
# 방법 1 : Join과 Union
SELECT *
FROM table1
LEFT OUTER JOIN table2
ON table1.n = table2.n
UNION
SELECT *
FROM table1
RIGHT OUTER JOIN table2
ON table1.n = table2.n;
# 방법 2 : Union All과 Exclusive Join
SELECT *
FROM table1
LEFT OUTER JOIN table2
ON table1.n = table2.n
UNION ALL
SELECT *
FROM table1
RIGHT OUTER JOIN table2
ON table1.n = table2.n
WHERE table1.n IS null;
3. Self Join
セルフサインは自分でサインしたサインです.
SELECT A.first_name AS EmployeeName1, B.first_name AS EmployeeName2, A.dept_no
FROM employees AS A, employees AS B
WHERE A.emp_no <> B.emp_no
AND A.dept_no = B.dept_no;
<コメント>
https://advenoh.tistory.com/23
Reference
この問題について([DataBase] Join), 我々は、より多くの情報をここで見つけました https://velog.io/@kdh10806/DataBase-Joinテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol