mysql查询一个数据表的重复字段并查询另一表的值
现在有两张表第一张tcmcase_contact2简称Cidspeaker_idchatroom_idspeaker_name1asss123王一2asss456王一3a...
现在有两张表
第一张
tcmcase_contact2 简称 C
id speaker_id chatroom_id speaker_name
1 asss 123 王一
2 asss 456 王一
3 abcd 789 李二
4 ccdd 789 赵四
第二张表
tcmcase_chatroom简称M
id chatroom_name chatroom_id
1 1群 123
2 2群 456
3 3群 789
也就是说 我想查询 C表里speaker_id 重复的字段比如王一
然后得到下面 B表的两个name
我自己写的SQL是
SELECT C.speaker_id, C.chatroom_id, M.chatroom_id, C.speaker_name, M.chatroom_name, count(C.speaker_id) AS count FROM tcmcase_contact2 AS C ,tcmcase_chatroom AS M WHERE C.chatroom_id = M.chatroom_id GROUP BY speaker_id HAVING count>1
得到的数组是
array (
0 =>
array (
'speaker_id' => asss',
'chatroom_id' => '123',
'speaker_name' => '王一',
'chatroom_name' => '1群',
'count' => '2',
),
我想一群二群的名字都得到该怎么写 展开
第一张
tcmcase_contact2 简称 C
id speaker_id chatroom_id speaker_name
1 asss 123 王一
2 asss 456 王一
3 abcd 789 李二
4 ccdd 789 赵四
第二张表
tcmcase_chatroom简称M
id chatroom_name chatroom_id
1 1群 123
2 2群 456
3 3群 789
也就是说 我想查询 C表里speaker_id 重复的字段比如王一
然后得到下面 B表的两个name
我自己写的SQL是
SELECT C.speaker_id, C.chatroom_id, M.chatroom_id, C.speaker_name, M.chatroom_name, count(C.speaker_id) AS count FROM tcmcase_contact2 AS C ,tcmcase_chatroom AS M WHERE C.chatroom_id = M.chatroom_id GROUP BY speaker_id HAVING count>1
得到的数组是
array (
0 =>
array (
'speaker_id' => asss',
'chatroom_id' => '123',
'speaker_name' => '王一',
'chatroom_name' => '1群',
'count' => '2',
),
我想一群二群的名字都得到该怎么写 展开
1个回答
展开全部
HAVING count>1
你不是限制了 大于1的条件么
tcmcase_contact2 简称 C
里面只有789的charroom_id 有2条记录>1
你不是限制了 大于1的条件么
tcmcase_contact2 简称 C
里面只有789的charroom_id 有2条记录>1
追问
我要得到的王一所在的1群2群
追答
SELECT
cc.chatroom_id,
tcmcase_chatroom.chatroom_name
FROM
(
SELECT
chatroom_id
FROM
tcmcase_contact2
WHERE
speaker_name IN (
SELECT
speaker_name
FROM
tcmcase_contact2 AS C
GROUP BY
speaker_name
HAVING
count(C.speaker_name) > 1
)
) cc
LEFT JOIN tcmcase_chatroom ON cc.chatroom_id = tcmcase_chatroom.chatroom_id
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询