2015-02-24 296 views
0

我試圖從"tbl_gig"表中獲取記錄,同時比較其中不同的行。 enter image description here 我試過,但沒有運氣:SQL查詢比較mysql中同一個表中不同行的相同字段

SELECT * FROM tbl_gig as t2 INNER JOIN tbl_gig as t3 
WHERE t2.gig_city=t3.gig_city 
    AND t2.artist_id=t3.artist_id 
    AND t2.partner_id < t3.partner_id 
GROUP BY t2.gig_eventDate; 

預期輸出:

gig_id gig_artist_id gig_partner_id 

1  1    1 
2/3  1    1/2 
4  1    1 

這個請大家幫忙。

+0

什麼是實際輸出?出了什麼問題? – 2015-02-24 14:31:01

+0

你想把兩行結合起來的基礎是什麼? – SMA 2015-02-24 14:31:46

+0

你提到PHP,那麼爲什麼地球上會'合併'MySQL的行? – Strawberry 2015-02-24 14:40:20

回答

0
SELECT 
    GROUP_CONCAT(gig_id SEPARATOR '/') as gig_id, 
    artist_id , 
    GROUP_CONCAT(partner_id SEPARATOR '/') as partner_id 
    FROM tbl_gig 
    GROUP BY artist_id 
+0

它不與分隔「/」我的意思是這些行中的任何一行應顯示 – anusha 2015-02-24 15:31:13

+0

,以便您可以刪除單獨的字符串。它必須按照你的要求工作:-)你給我們預期的結果 - 我做了查詢得到它:-)你需要任何幫助來刪除分隔符?還有什麼我可以幫忙的? – Alex 2015-02-24 15:32:39

+0

根據「partner_id」,如果具有與artist_id,city,country,date不同的partner_id的行(不考慮時間)應該與其他行一起顯示爲一行。請檢查屏幕截圖不是預期的輸出, – anusha 2015-02-24 15:37:50