2013-10-01 60 views
1

我這樣的表:如何獲取下面的sql查詢結果?

id name 
1 jid1 
1 jid2 
2 jid1 
2 jid3 

如何獲得匹配的ID值,如上表jid1,jid2具有相同idjid1,jid3具有價值的另一個相同的ID。

如何獲得這些匹配的記錄?我需要如何爲此編寫查詢?

預期輸出:

id name 
1 jid1,jid2 
2 jid1,jid3 
+0

在MySQL中這將是'GROUP_CONCAT',不確定MS SQL – DanFromGermany

回答

3

可以使用FOR XML這樣做,是這樣的:

SELECT 
    t1.Id, 
    STUFF((
    SELECT ', ' + t2.name 
    FROM Tablename t2 
    WHERE t2.ID = t1.ID 
    FOR XML PATH ('')) 
    ,1,2,'') AS Name 
FROM Tablename t1 
GROUP BY t1.Id; 
+0

如果我通過jid1,jid2作爲參數在哪裏c lause我需要得到身份證value.can你告訴我的查詢嗎? – user1237131

+0

@ user1237131你想獲得名稱爲「jid1,jid2」或至少有一個名字的「id」嗎?如果其中一個使用'WHERE name IN(jid1,jid2)'。 –

+0

我需要使用上面的查詢得到多個值的通用名稱的ID?我需要在上面的查詢中輸出通用的ID 1。 – user1237131