可能であれば、1 つのクエリに結合したい 3 つの個別のクエリがあります。目的は、3 つのテーブルのうち任意の 2 つに存在するユーザーを見つけることです。3 つのテーブルのうち少なくとも 2 つに存在する必要があります。
user (user table)
user_job_ft_job (full time job)
user_job_own_venture (startup/own venture)
user_job_not_looking (not seeking employment)
-- not seeking and full time
SELECT * from user_job_not_looking ujnl, user_job_ft_job uj, [user] u
WHERE 1=1
AND ujnl.user_id = u.user_id
AND uj.user_id = u.user_id
-- own venture and full time
SELECT * from user_job_own_venture ujov, user_job_ft_job uj, [user] u
WHERE 1=1
AND ujov.user_id = u.user_id
AND uj.user_id = u.user_id
-- own venture and not looking
SELECT * from user_job_own_venture ujov, user_job_not_looking ujnl, [user] u
WHERE 1=1
AND ujov.user_id = u.user_id
AND ujnl.user_id = u.user_id
これらのクエリを何らかの方法で 1 つの大きなクエリに結合して、このビジネス ケースを処理する動的コードを簡単に記述できるようにしたいと考えています。
[user] テーブルの主キーである user_id と呼ばれる外部キーがすべてあることを除けば、テーブルの構造は重要ではありません。