对于MySql专家来说,这可能是一个非常基本的查询实践,但我无法得到我期待的结果。
下面是MySql查询和输出窗格。 我想要实现的是获取所有cell_id的记录中不存在的bug_ids。换句话说,查看下面的记录,我们可以看到bug_ids 1,2,3,4存在于所有cell_ids 32,33,34中。我想要除了这些bug_ids之外的记录。所以预期的输出就是这样的,
project_id cell_id bug_id test_set_id case_id
106 32 16 1 5
106 33 16 1 5
106 34 7 1 5
我也尝试过使用自联接,但找不到合适的查询。
如果您需要更多信息,请与我们联系。任何帮助将不胜感激。谢谢你们。
答案 0 :(得分:1)
您可以通过执行以下操作获取不在所有单元格中的错误列表:
select bug_id
from tran_cell_bug tcb
where cell_id in (32, 33, 34)
group by bug_id
having count(distinct cell_id) <> 3;
然后,您可以使用join
获取原始值:
select tcb.*
from tran_cell_bug tcb join
(select bug_id
from tran_cell_bug tcb
where cell_id in (32, 33, 34)
group by bug_id
having count(distinct cell_id) <> 3
) b
on tcb.bug_id = b.bug_id;