SQL语句 如何查找一张表里多个字段符合条件的内容

比如有张表,里面有字段A,B,C,现在想查询条件是同时满足条件1(A=a1 and B=b1)和条件2(A=a2 and C=c1)的记录
问题解决了,用left join,整条查询语句是:
select * from tab t1 left join tab t2 on t1.ID = t2.ID where (t1.A = a1 and t1.B = b1) and (t2.A = a2 and t2.C = c1)

两个方法。这是按照你的题意是这么的,但是应该死查不出来东西的,因为A=a1 和A=a2怎么会同时满足,除非a1=a2,我觉得可能你题目看错了,不是同时满足,而是满足条件1或条件2,这样才会有记录被查出来
1. select * from tab where ((A=a1 and B=b1)and(A=a2 and C=c1));
2.select * from tab where A=a1 and B=b1
intersect select * from tab where A=a2 and C=c1
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-03-28
select * 
from t1
where (A = a1 and B = b1 ) or (A = a2 and c= c1)

追问

这样不对,比如满足条件1的有50条,满足条件2的有100条,而我想查的同时满足条件1和条件2,这样的记录只有不到50条,而你这样用or的话,查出来是满足条件1或满足条件2,会超过100条记录的

追答

同时满足??
你的A可以在等于a1的同时也等于a2?

追问

应该这么说,记录集里存在多条重复的记录(对某个字段来说),这些记录有些只满足条件1,有些只满足条件2,有些是同时满足两个条件的,我想找出同时满足条件1和条件2的那些记录,而只满足其中一个条件的记录就不统计。

相似回答