もくじ
基本形
SELECT * FROM users WHERE users.job_id IN (1, 6);
実際はこういう形が多いはず
SELECT * FROM users WHERE users.job_id IN (SELECT jobs.id FROM jobs WHERE job_code IN ('engineer', 'PM');
ここが先に実行される
(SELECT jobs.id FROM jobs WHERE job_code IN ('engineer', 'PM')
その結果でWHEREをする
SELECT * FROM users WHERE users.job_id IN (1, 6)
WHERE カラム名 IN () で更新
だいたい()の中でSELECTして利用することが多いように思う。
INの中で副問い合わせを行っている例
UPDATE `job_designs` SET `sample_designs.json` = '{ "user_settings": { "id": 1, "job_enable": false } }' WHERE `sample_designs.user_id` IN (SELECT users.id FROM users WHERE `users.job_id` = 3) AND `job_designs.type` = 'engineer';