1

私は録音を含む音楽カタログを持っています。各録音には所有者と作成者がいます。テーブルは次のとおりです。

recordings
recordings_authors(Fk rec_id, Fk contact_id)
recordings_owners(Fk rec_id, Fk contact_id)
contacts (name of people)

最終的なエコーは次のように表示されます。

Title: (name of title)
Author: (name from contacts)
Owner: (name from contacts)

以下は、所有者が作成者と同じ連絡先として表示されることを除いて、正常に機能します。JOIN 作成者を完全に削除しても、エラーが発生します。

SELECT recordings.title,contactsauthors.name AS authorname,contactsowners.name AS ownername
FROM recordings

JOIN recordings_authors AS authors ON recordings.id=authors.rec_id
JOIN contacts AS contactsauthors ON authors.rec_id=contactsauthors.id

JOIN recordings_owners AS owners ON recordings.id=owners.rec_id 
JOIN contacts AS contactsowners ON owners.rec_id=contactsowners.id

WHERE recordings.id=1


$row=mysqli_fetch_assoc($results);
echo $row['title'].'<h2>Credits</h2>Author: '.$row['authorname'].'<br>Owner: '.$row['ownername'];

ここで見つけることができる最良の答えは、これです MySQL: 列エイリアスを特定のJOIN句に関連付ける方法

4

1 に答える 1