2015-07-01 57 views
0

我已经得到了team_member如何使MySQL有相同的价值观另一个表

memberid | teamid | groupid | .... 
    123  12  45 
    113  15  46 
    ...  ....  .... 

此表命名,然后将该表members

id | name | ipaddress | ... 
123 Amy 8.45.1.23 
113 Mark 12.4.41.124 
... .... .......... 

我想加入什么是使名单成员谁拥有相同的ipaddress,但他们在同一个groupid中有两个小组。可能吗?

+1

请提供样本数据和期望的结果。你的问题不清楚。什么有两个团队,会员还是ipaddress(甚至是团队)? –

+0

表格定义和样例数据最受欢迎的形式是有效的“CREATE TABLE ...”和“INSERT INTO ...”语句;使得它更容易摆弄。 – VolkerK

回答

0

以下查询将返回多个不同的id使用的IP地址列表。通过在ipaddress,groupid上使用GROUP BY,我们可以将结果限制为共享组ID的行。

SELECT 
    ipaddress, GROUP_CONCAT(DISTINCT id), groupid 
FROM 
    member 
JOIN 
    team_member 
ON 
    team_member.memberid = member.id 
GROUP BY 
    ipaddress, groupid 
HAVING 
    COUNT(DISTINCT id) > 1 
ORDER BY 
    COUNT(DISTINCT id) DESC 

您可以在这里看到有关测试数据的查询。

http://sqlfiddle.com/#!9/eced69/8/0

+0

我已经用多个PHP解决了这个问题,while循环首先搜索相同的IP地址,然后搜索每个组中的团队。但是你的查询就像一个魅力。谢谢 ;) –

相关问题