0

このタスクを実行するための、JOIN 以外の簡単な方法はありますか?

mysql_query("select DISTINCT artist, id from ringtones where artletter='A'");

結果は次のようになります: 対応する ID を持つ重複のないすべてのアーティスト値。

4

2 に答える 2

3

次のようにすると、アーティストごとに 1 つの行を取得でき、そのアーティストのすべての ID が 1 行に表示されます。

SELECT artist, GROUP_CONCAT(id) as `IDs`
FROM ringtones
WHERE artletter='A'
GROUP BY artist;

各アーティストの最初 だけが必要な場合は、これを試してください。id

SELECT artist, MIN(id) as `first_id`
FROM ringtones
WHERE artletter='A'
GROUP BY artist;

(代わりに を使用して最後 を取得できます)idMAXMIN

そのアーティストの最初または最後の(に基づく) が必要な場合は、そのリンクで説明されているように、グループごとの最大値idを実行できます。

于 2012-11-22T09:12:44.820 に答える
0

おそらくあなたはこれを探しています..

select DISTINCT artist, id where id IN(select DISTINCT id from ringtones where artletter='A')
于 2012-11-22T09:13:55.927 に答える