#MOC #相関サブクエリ
外側のクエリと内側の[[🗃️サブクエリ(副問合せ)]]が相互に関連している形式の[[🗃️SQL]]。
内側の[[🗃️サブクエリ(副問合せ)]]は、外側のクエリの各行を参照して結果を生成できる。
例
- studentsテーブル
|id|name|
|---|---|
|1|John|
|2|Lisa|
- test_scoresテーブル
|id|student_id|test_name|score|
|---|---|---|---|
|1|1|Math|85|
|2|1|Science|90|
|2|2|science|95|
```sql
-- Mathのテストを受けていない学生を探すクエリ
SELECT
s.*
FROM
students s
WHERE
NOT EXISTS (
SELECT
1
FROM
test_scores ts
WHERE
ts.student_id = s.id -- 関連付けをする
AND ts.test_name = 'Math'
)
```
## 📚ドキュメント
- [SQL 相関副問合せのサンプル(相関サブクエリ) | ITSakura](https://itsakura.com/sql-correlated-subquery)
## 📖ノウハウ
- [[📗相関サブクエリをouter joinを使って書き換える]]
## 💁トラブルシューティング