這是我經常碰到的一個問題,我的解決方案總是要運行大量的查詢,但我覺得必須有更好的方法。這裏是我的兩個表這個例子:如何在列表中獲取列表(類似於多維數組)?
藝術家
ID
名歌曲
ID
artistID
名
流派
錶鏈接爲這樣:
artists.id < - > songs.artistID
我想獲取所有藝術家的列表,並在同一時間內獲取每個藝術家的所有歌曲的列表。我想在結果集中避免重複的藝術家名稱,這樣我就不必清除PHP中的數據集。這裏的格式的一個例子,我想數據是在:
array(0 => array('name' => 'Artist A'
, 'songs' => array(0 => array('name' => 'Song 1'
, 'genre' => 'rock'
)
)
1 => array('name' => 'Song 2'
, 'genre' => 'rock'
)
)
)
1 => array('name' => 'Artist B'
, 'songs' => array(0 => array('name' => 'Song 3'
, 'genre' => 'rap'
)
)
1 => array('name' => 'Song 4'
, 'genre' => 'rap'
)
)
)
)
(我知道這是不是一個MySQL的格式,但它是我可以解釋最近的樣子)
這是可能的?如果是這樣,怎麼樣?
謝謝!
我不是很熟悉的IN子句,但我會考慮它。謝謝。 – 2009-09-17 00:43:50
SELECT * FROM表1凡Table1ID IN(1,2,3,4,5,6) 可以做同樣的SELECT * FROM SONGS WHERE ArtistID IN(1,2,3,4)。如果你有藝術家屈指可數然後你可以通過自己的ID列表中選擇關閉獲得該藝術家的所有歌曲(或者你可以做一個直接連接)。但是,與藝術家的集合,他們的歌曲的集合,你應該能夠實現你要找的事情。 – 2009-09-18 18:16:43