これはJOIN
クエリではなく、NOT IN()
述語を持つ無相関サブセレクトのクエリです。
私は `P_ID(3 U_ID =ユーザーからのp-IDを選択)ないでuser_projectsからプロジェクト名を選択し
SELECT
*
FROM
( SELECT 1,'Apple' -- input data, don't use in 'real' query
UNION ALL SELECT 5,'Banna' -- input data, don't use in 'real' query
UNION ALL SELECT 7,'Carrot' -- input data, don't use in 'real' query
UNION ALL SELECT 8,'Durian') -- input data, don't use in 'real' query
projects(p_id,p_name)
WHERE p_id NOT IN (
SELECT
p_id
FROM
( SELECT 2,1 -- input data, don't use in 'real' query
UNION ALL SELECT 2,5 -- input data, don't use in 'real' query
UNION ALL SELECT 2,7 -- input data, don't use in 'real' query
UNION ALL SELECT 3,1 -- input data, don't use in 'real' query
UNION ALL SELECT 3,8) -- input data, don't use in 'real' query
users_projects(u_id,p_id)
WHERE u_id=3
)
;
p_id|p_name
7|Carrot
5|Banna
projects
テーブルの列が十分にあることを望む;' –
NOT IN IS少し危険です...私はヌルセーフではない存在を推奨します。 – jarlh
@jarlh NOT EXISTSクエリを追加できますか? –