はじめに
プログラマになり日々の仕事にあっぷあっぷですが
メモがてら書きます。
最近SQLを読むことが増えました!
その中で暗黙的な内部結合がされているのを目撃!
INNER JOIN
で書いてくれないとわたしはわかんないよーてなったので
メモがてら記事にしておきます!
SQLの内部結合
INNER JOIN(内部結合)は、複数のテーブルを結合するためのSQL構文で、指定した条件に一致するレコードのみを返す結合方法です。
この記事がわかりやすかったです↓※この記事から画像引用
内部結合には明示的と暗黙的があります。
明示的な内部結合
SELECT e.employee_id, e.name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;
暗黙的な内部結合
暗黙的な内部結合(INNER JOIN)は、SQL文で明示的にJOINキーワードを使用せずにテーブルを結合する方法です。この方法は、SQL標準のJOIN構文が導入される前から使用されていました。↓参照
この構文では、FROM句で複数のテーブルをカンマで区切って指定し、WHERE句で結合条件を定義します。
SELECT column1, column2, ...
FROM table1, table2
WHERE table1.column = table2.column;
明示的な外部結合
よく使用するのは、左外部結合です。
右外部結合もありますが、今回は省略します。
SELECT e.employee_id, e.name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;
暗黙的な外部結合
暗黙的な結合は、非推奨ではありますが外部結合もあります。
ここではOracleの例で記載します。
急に出てきてもびっくりしないようにしましょう!(私はびっくりしました)
SELECT table1.column1, table2.column2
FROM table1, table2
WHERE table1.id = table2.id(+);
おわりに
設計書と睨めっこな毎日です。。
,
で暗黙的内部結合とか知らなかったので頭抱えました!
サブクエリとかありすぎで何が何だかわからんし…
引き続き頑張ります!