-1

私は3つのテーブルソングテーブルを持っています

ここに画像の説明を入力

アルバム表

ここに画像の説明を入力

アーティストテーブル ここに画像の説明を入力

各曲のアルバム名、アルバム ID、アルバム カバー、アーティスト名 (場合によってはマルチ アーティスト)、アーティスト ID などの完全な情報を含むテーブル ソングから最新の 10 曲を取得したいと考えています。このクエリを使用しますが、機能しません

SELECT song.SID, artist.NAME, song.COVER, song.TITLE, album.COVER AS ACOVER, album.TITLE AS ATITLE, album.AID 
FROM song
INNER JOIN album ON album.SONG LIKE CONCAT('%,',song.ID,',%') 
INNER JOIN artist ON song.ARTIST LIKE CONCAT('%,',artist.ID,',%') 
ORDER BY song.ID DESC

ここで何か問題がありますか?

4

1 に答える 1

1

@Tim Biegeleisen が述べたように、先に進む前にデータを正規化することをお勧めします。

2 つの新しい関係テーブルを作成します。

AlbumxSong with fields:
AID
SID

ArtistxSong with fields:
SIID
SID

その後、テーブルARTIST内のフィールドは必要ありません。テーブルのフィールドSongと同じ。関係テーブルにその情報があります。SONGAlbum

それが役立つことを願っています。

于 2018-06-03T15:03:38.480 に答える