我有以下两个问题:
select count(*) from table_1 where c_id=12345
select count(*) from table_2 where success=1 and c_id=12345
我在C#层添加了这两个计数。但是,table_1
和table_2
都有一个名为m_id
的列。我希望能够得到table_2
具有这两种条件的总计数:
success=1 and c_id=12345
m_id
不等于m_id
中的任何table_1 where c_id=12345
。 这可能吗?是否可以在单个查询中执行此操作?我还是SQL新手,所以如果这是一个显而易见的问题我会道歉。
答案 0 :(得分:1)
只需在第二个查询中添加not exists
子句:
select count(*)
from table_2 t2
where t2.success = 1 and t2.c_id = 12345 and
not exists (select 1 from table_1 t1 where t1.m_id = t2.mid and t1.c_id = 12345);
答案 1 :(得分:0)
您可以使用NOT EXISTS
:
select
count(*)
from table_2
where success = 1
and c_id = 12345
and not exists
(
select
1
from table_1
where table_2.m_id = table_1.m_id and table_1.c_id = 12345
)