Beste GoT-ers..
Ik zit met een sql probleem.
Ik heb 2 tabellen, foto en trefwoord. Die hebben een veel op veel relatie dus heb ik ook een koppel tabel foto_trefwoord. Tot nu toe is het nog duidelijk.
Nu probeerde ik alle foto's te krijgen die zowel een koppeling met trefwoord id 5 als id 7 hebben.
Niet zo moeilijk dacht ik.
Dit viel zwaar tegen. Met alle queries die ik geprobeert heb krijg ik of te veel of niks.
Bij te veel results was het duidelijk een 'OR' dus alle fotos die of 5, of 7 gekoppeld hebben.
Ik heb MySQL versie < 4.0 dus subqueries en unions zijn niet mogelijk.
En daarbij heb ik ook nog het probleem dat het 1 querie moet zijn. dus ik kan niet alles van 5 eerst selecteren en dan met php de boel verder filteren.
dit is de querie die er het dichtst bij kwam.
Als ik de eerste Inner join vervang door een left heeft het geen effect.
De reden waarom ik in de 'from' uit de koppel tabel selecteer, is omdat anders de inner join een error geeft. Luisterd nauw naar volgorde meen ik gelezen te hebben op mysql.com
Ik hoop dat ik alles een beetje normaal heb uitgelegd.
Weet iemand hoe het wel moet of kan het gewoon helemaal niet.
thnx Commodus2
Ik zit met een sql probleem.
Ik heb 2 tabellen, foto en trefwoord. Die hebben een veel op veel relatie dus heb ik ook een koppel tabel foto_trefwoord. Tot nu toe is het nog duidelijk.
Nu probeerde ik alle foto's te krijgen die zowel een koppeling met trefwoord id 5 als id 7 hebben.
Niet zo moeilijk dacht ik.
Dit viel zwaar tegen. Met alle queries die ik geprobeert heb krijg ik of te veel of niks.
Bij te veel results was het duidelijk een 'OR' dus alle fotos die of 5, of 7 gekoppeld hebben.
Ik heb MySQL versie < 4.0 dus subqueries en unions zijn niet mogelijk.
En daarbij heb ik ook nog het probleem dat het 1 querie moet zijn. dus ik kan niet alles van 5 eerst selecteren en dan met php de boel verder filteren.
dit is de querie die er het dichtst bij kwam.
code:
1
2
3
4
5
| SELECT foto. * FROM foto_trefwoord INNER JOIN foto ON foto_trefwoord.fotoId = foto.fotoId INNER JOIN trefwoord ON trefwoord.trefwoordId = foto_trefwoord.trefwoordId WHERE trefwoord.trefwoordId = 5 OR trefwoord.trefwoordId = 7 |
Als ik de eerste Inner join vervang door een left heeft het geen effect.
De reden waarom ik in de 'from' uit de koppel tabel selecteer, is omdat anders de inner join een error geeft. Luisterd nauw naar volgorde meen ik gelezen te hebben op mysql.com
Ik hoop dat ik alles een beetje normaal heb uitgelegd.
Weet iemand hoe het wel moet of kan het gewoon helemaal niet.
thnx Commodus2