我有三个单独的查询,我想如果可能的合并成一个单一的查询。目的是找到存在于三个表中任何两个中的用户。它们必须至少存在于三张桌子中的两张桌子上。SQL查找匹配 - 合并查询
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
我想这些查询某种方式合并成一个大的查询,这样我可以更轻松地编写动态代码来处理这一商业案例。
的表的结构并不重要,比知道它们都具有称为USER_ID外键它是[用户]表的主键等。
为什么要用三个表的用户?是否有可能只是结合表格并添加一个user_type_id字段?这看起来是最直观的做事方式。您将消除每个表格之间的所有复制数据。 –
其实我想你会需要两个领域,一个是寻求/风险,另一个全职/ notlooking –
的用户在[用户]表中。每个其他表是一个“作业”表,用于存储可能与用户关联的作业。我想知道如何在不更改数据模型的情况下执行此操作。 –