私は録音を含む音楽カタログを持っています。各録音には所有者と作成者がいます。テーブルは次のとおりです。
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句に関連付ける方法