4


「アーティスト」(列:名前、ID)と
「曲」(タイトル、composers_id、songwriters_id)のテーブルを持つデータベースがあるとします。

作曲者名とソングライター名で曲を印刷したい。私は作曲家の名前を印刷することに成功しました:

SELECT title, name AS Composers_Name 
  FROM artist, song 
    WHERE song.composers_id = artist.id;

ソングライターの名前を取得できません..
私が試したのは次のとおりです。

SELECT title, name AS Composers_Name, name AS Songwriters_name
  FROM artist, song 
    WHERE song.composers_id = artist.id AND song.songwriters_id = artist.id;

しかし、これは作曲家とソングライターが同一人物であるすべての曲を返します。JOINを使おうと思っているのですが、よくわかりません。

4

3 に答える 3

2

左結合を使用

SELECT s.title, c.name AS Composers_Name, a.name AS Songwriters_name
  FROM song s
  LEFT JOIN artist a ON s.songwriters_id = a.artistID
  LEFT JOIN artist c ON s.composers_id = c.artistID
于 2012-11-24T00:26:43.750 に答える