0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL 明示的と暗黙的な結合

Last updated at Posted at 2024-12-26

はじめに

プログラマになり日々の仕事にあっぷあっぷですが
メモがてら書きます。

最近SQLを読むことが増えました!
その中で暗黙的な内部結合がされているのを目撃!
INNER JOINで書いてくれないとわたしはわかんないよーてなったので

メモがてら記事にしておきます!

SQLの内部結合

INNER JOIN(内部結合)は、複数のテーブルを結合するためのSQL構文で、指定した条件に一致するレコードのみを返す結合方法です。

スクリーンショット 2024-12-26 183811.png

この記事がわかりやすかったです↓※この記事から画像引用

内部結合には明示的と暗黙的があります。

明示的な内部結合

明示的な内部結合.
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;

明示的な外部結合

よく使用するのは、左外部結合です。
右外部結合もありますが、今回は省略します。

明示的な内部結合(LEFT JOIN).
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(+);

おわりに

設計書と睨めっこな毎日です。。
,で暗黙的内部結合とか知らなかったので頭抱えました!
サブクエリとかありすぎで何が何だかわからんし…
引き続き頑張ります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?