2015-07-01 89 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地址,然後搜索每個組中的團隊。但是你的查詢就像一個魅力。謝謝 ;) –

相關問題