2011-04-18 155 views
1

有一個表格,其中有列:id,藝術家,標題,專輯。 我需要得到具有對不同的值(藝術家,標題)和唱片行mysql。 sql查詢。選擇

例如:

,我現在(我的查詢的結果):
===藝術家===== ==標題=========專輯
一些artist1 ===歌曲標題1 ===第一專輯
一些artist1 ===歌曲標題1 ===第二張專輯
some artist1 === song ti TLE 1 ===第三張專輯

我需要:
===藝術家=======標題=========專輯
一些artist1 ===歌標題1 ===第一張專輯

回答

0

通過使用作爲

select * from `table` group by title,artist; 

它會返回一個排的一對標題和藝術家的組。

0

過濾掉第二張和第三張專輯。 WHERE專輯NOT IN('第二張專輯','第三張專輯')

雖然如果我們可以看到架構,但它有幫助。

0

您選擇顯示哪一個相冊取決於相冊的順序。這順序是不是唯一的,但是像下面這樣可能會產生你在找什麼:

SELECT artist, title, MAX(album) 
FROM MyTable 
GROUP BY artist, title 
0

試試這個:

GROUP BY artist title album 
1
SELECT t.* 
FROM (
     SELECT DISTINCT artist, title 
     FROM mytable 
     ) td 
JOIN mytable t 
ON  t.id = 
     (
     SELECT id 
     FROM mytable ti 
     WHERE (ti.artist, ti.title) = (td.artist, td.title) 
     ORDER BY 
       ti.artist, ti.title, ti.id 
     LIMIT 1 
     ) 

這將返回第一album對於給定(artist, title)id訂購。

在子查詢中更改ORDER BY條件以控制將返回哪個相冊。