求大神!!!sql语句查询表中同时满足一个字段多个值的记录
java吧
全部回复
仅看楼主
level 9
表user_detail
user:用户Id
tm_id:题目的id
da_an:用户的答案
查询同时答对题目1,2的用户个数,即同时满足tm_id=1,da_an=b,且tm_id=2,da_an=a的答题人数
求大神指教
2018年04月05日 13点04分 1
level 7
where 你说的条件 group user
2018年04月05日 14点04分 5
直接这样加条件是不对的Where tm-id=1 and daan=a and tm-id=2 and daan=c 需求是查询同时答了1.2两题
2018年04月06日 08点04分
level 11
SELECT
COUNT(1)
FROM
user_detail d
INNER JOIN user_detail d2 ON d.id = d2.id
WHERE
d.tm_id = 1
AND d.da_an = 'd'
or d2.tm_id=2
and d2.da_an='a'
2018年04月05日 14点04分 6
回复 祈见今朝 :[吐舌]
2018年04月05日 16点04分
这个innerjoin有什么用?id等于id数量都没变化,和直接count有啥区别?而且要2题都答对。。不会是or
2018年04月06日 00点04分
回复
祈见今朝
:没。。 我遇到问题都是百度
2018年04月06日 13点04分
@abcwt112 嗯 确实错了,但是单表连表查为什么不行?单表还能设计成自关联呢
2018年04月06日 13点04分
level 15
5楼是对的
2018年04月06日 00点04分 10
level 5
select count(1) from user_detail where concat(tm_id,da_an) in ('1b','2a')
2018年04月06日 03点04分 11
1b和2a是要同时满足,in的话是或的关系了
2018年04月06日 08点04分
回复 曦颜🍀露滴º :select count(1) from(select count(1) from USER_DETAIL where concat(TM_ID,DA_AN) in ('1b','2a') group by USER having count(1)=2)
2018年04月06日 08点04分
level 15
select user from userdetail a where a.tmid=1 and a.daan=b or a.tmid=2 and a.daan=a group by a.user having count (1)=2
或者
select a.user form userdetail a,user detail b where a.user=b.user and a.tmid=1 and a.daan=b and b.tmid=2 and b.daan=a
2018年04月06日 15点04分 12
你楼上是对的 你的错的
2018年04月06日 15点04分
回复 🍀💧💦💧💦走过 :骚年真逗啊,说说哪里错了,除了没count
2018年04月07日 00点04分
level 15
2018年04月07日 08点04分 13
@浓浓的苦绿茶 哪里错了?把你截图贴出来[冷]
2018年04月07日 08点04分
level 11
@abcwt112 语句我应该没复制错吧。。
2018年04月07日 08点04分 14
你这是第一题d第二题a啊...查出1,2,4有啥问题???[疑问]?
2018年04月07日 08点04分
@abcwt112 所以说查出多条了
2018年04月07日 08点04分
回复 🍀💧💦💧💦走过 :老哥..你这个查询条件是第一题d,第二题a,查出3条才是对的好不?
2018年04月07日 08点04分
@abcwt112 [阴险] 我怎么感觉说不清了
2018年04月07日 08点04分
level 11
select count(1) from (select
count(1)
FROM
user_d a
WHERE
a.tm_id=1
AND a.da_an='d'
OR
a.tm_id=2
AND a.da_an='a'
GROUP BY
a.`user`
HAVING
count(a.user)=2)
user_d
改成这样 没问题
select count(1) from (select
count(1)
FROM
user_d a
WHERE
a.tm_id=1
AND a.da_an='d'
OR
a.tm_id=2
AND a.da_an='a'
GROUP BY
a.`user`
HAVING
count(a.user)=2)
user_d
@abcwt112
2018年04月07日 08点04分 15
最后那个user_d 是别名。。
2018年04月07日 08点04分
你这个SQL和我写的有啥关系???你不是说我错的么?
2018年04月07日 08点04分
而且外层都count了内层还要count干嘛.直接select1好了
2018年04月07日 08点04分
@abcwt112 是啊,上面那个 查出了多条记录。。你没发现吗 124 这个是我在你的基础上改的
2018年04月07日 08点04分
1