0

私はアーティストの ID を持っています。このアーティストがリリースしたすべてのアルバムを知りたいです。

MySQL の構造

MySQL の構造

Mysql クエリの例

SELECT album_name 
FROM albums AS a, 
     tracks AS t, 
     produced AS p 
WHERE p.produced_track = t.track_id 
  AND t.track_album = a.album_id 
AND p.produced_artist = "17"

問題

アルバムには多くのトラックがあるため、結果には同じアルバムが数回表示されます。ディスコグラフィーを作るために、アーティストのアルバムをすべて揃えたいです。MySQL でそれを行う方法はありますか?

4

3 に答える 3

2

あまりにも多くの行を取得して重複を削除する代わりに、サブクエリを使用することもできます

SELECT album_name 
FROM albums AS a
WHERE album_id IN (SELECT t.track_album
                   FROM tracks t
                      JOIN produced AS p ON p.produced_track = t.track_id 
                   WHERE p.produced_artist = 17)

また、句JOINに隠されている暗黙の結合の代わりに、明示的な構文を使用することに慣れる必要があります。WHERE

于 2013-05-12T16:23:34.210 に答える