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',
),

我想一群二群的名字都得到该怎么写
展开
 我来答
我心我在
2015-11-27 · TA获得超过2157个赞
知道小有建树答主
回答量:784
采纳率:77%
帮助的人:634万
展开全部
HAVING count>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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式