Ett annat alternativ är ju att joina in person-tabellen två gånger i olika syften, ena via
JOIN person ON bild.fotografid = person.id, andra via
JOIN pers_bild ON ... JOIN person ON pers_bild.personid = person.id.
Se till att definiera tabellaliases bara, annars blir det omöjligt att referera "ena eller andra" person-tabellen i resultatet. Dina queries är förvirrade nog redan nu så du borde nog använda aliases ändå
Exempel på tabellaliases:
...
FROM bilder
b
INNER JOIN personer
p ON
b.fotografid =
p.id
WHERE
b.id = ..
Men i det här fallet är det väl kanske så att du vill returnera
en bild (med
en fotograf) föreställandes
tio personer. Skall du då köra en query för att returnera tio rader, där bildinfo och fotografinfo är samma på de tio raderna? Håll isär det i separata queries, en för att hämta bildinfo (en rad), och en för att hämta info om personer i bilden (noll eller flera rader).