关于sql总数的问题~

来源:百度知道 编辑:UC知道 时间:2024/06/15 03:22:07
select count(*) as "Total Award are Given" from
attendees
where Year(dob) = "1930"
and month(dob) = "11"
or attendeeID in (select attendeeID from attendees_award)
or gender = "f";

为什么和
select count(*) as "Total Award are Given" from
attendees
where Year(dob) = "1930"
and month(dob) = "11";

select count(*) as "Total Award are Given" from
attendees
where attendeeID in (select attendeeID from attendees_award);

select count(*) as "Total Award are Given" from
attendees
where gender = "f";

为什么和这三个分别算出来再加在一起的总数不一样?
如果要这三个算出的总数 和 分别算出的数之和 相同
应该怎么写这个command?
谢谢!~
貌似还是不行..可能是因为database里面的内容有重叠导致的..

第一个这么写
select count(*) as "Total Award are Given" from
attendees
where (Year(dob) = "1930"
and month(dob) = "11" )
or attendeeID in (select attendeeID from attendees_award)
or gender = "f";
这样下面的三个加在一起就和上面的一样了
多个and和多个or在一起用要用括号来约束逻辑

原因在于这三种资料之间有交集吧