有这样一个表 s
a b c
11 2 1
11 1 0
22 1 1
22 1 0
33 1 1
33 2 2
查询出a字段 其中如果b字段中的值是最大的(如果相等满足c字段等于0) 并且c字段等于0
象这个表s的结果是 11 22
我写的只能查出11
SELECT a FROM s where b=(SELECT max(b) FROM s)
a b c
11 2 1
11 1 0
22 1 1
22 1 0
33 1 1
33 2 2
查询出a字段 其中如果b字段中的值是最大的(如果相等满足c字段等于0) 并且c字段等于0
象这个表s的结果是 11 22
我写的只能查出11
SELECT a FROM s where b=(SELECT max(b) FROM s)
a b c
11 2 0
11 1 1
22 1 1
22 1 0
33 1 1
33 2 2
SELECT @maxb=max(b) from s
SELECT a from (select a from s group by b) WHERE b=@maxb or c=0试试吧,没测试不知道正不正确
另外,这个sql语句会不会导致每查一条数据都会去做max?
SELECT @maxb=max(b) from s SELECT * FROM s where b=@maxb AND C=0
按照你最新的表的数据,应该只有11啊,
b为2 的有11和33,但c为0 的只有第一条啊
查询出a字段 其中如果b字段中的值是最大的(如果相等满足c字段等于0) 并且c字段等于0