我正在使用mysql数据库。我有两个表错误和配置文件。Bugs 表有两列(assigned_to、qa_contact),通过多对一关系指向配置文件。这些是我的查询的简化版本。
首先,我试图这样做,但它返回错误表中 qa_contact 为空的重复行
select
bug_id,
desc,
dev.assigned_to,
qa.qa_contact
from
bugs,
profiles as dev,
profiles as qa
where
assigned_to = dev.userid
and (qa_contact = qa.userid or qa_contact is null)
其次,我的新方法是:
select bug_id, desc, dev.assigned_to, qa.qa_contact
from
bugs,
profiles as dev,
profiles as qa
where
assigned_to = dev.userid
and qa_contact = qa.userid
UNION
select bug_id, desc, dev.assigned_to, null
from
bugs,
profiles as dev,
profiles as qa
where
assigned_to = dev.userid
and qa_contact is null
但在第二种方法中,它排除了 qa_contact 为空的结果。任何人都可以提出一种有效的方法来执行此操作,因为我正在处理数百万的记录,并且希望在结果集上添加更多过滤器。