PHP ver gevorderde |
|
Hoi,
Ik gebruik de volgende query om alle kamers met 1 bijbehorende random afbeelding op te halen, althans dat probeer ik:
SELECT
".TABLE_KAMERS.".id,
".TABLE_KAMERS.".straat,
".TABLE_KAMERS.".huisnummer,
".TABLE_KAMERS.".plaats,
".TABLE_KAMERAFBEELDINGEN.".filename_original,
".TABLE_KAMERAFBEELDINGEN.".filename_resized
FROM
`".TABLE_KAMERS."`
LEFT JOIN `".TABLE_KAMERAFBEELDINGEN."` ON (".TABLE_KAMERS.".id = ".TABLE_KAMERAFBEELDINGEN.".kamer_id AND filename_original = (SELECT filename_original FROM `".TABLE_KAMERAFBEELDINGEN."` WHERE ".TABLE_KAMERS.".id = ".TABLE_KAMERAFBEELDINGEN.".kamer_id ORDER BY RAND() DESC LIMIT 1))
WHERE ".TABLE_KAMERS.".verhuurder_id = '".$db->escape($user['userdata']['id'])."'
GROUP BY ".TABLE_KAMERS.".id
ORDER BY ".TABLE_KAMERS.".datum_toegevoegd DESC
SELECT ".TABLE_KAMERS.".id, ".TABLE_KAMERS.".straat, ".TABLE_KAMERS.".huisnummer, ".TABLE_KAMERS.".plaats, ".TABLE_KAMERAFBEELDINGEN.".filename_original, ".TABLE_KAMERAFBEELDINGEN.".filename_resized FROM `".TABLE_KAMERS."` LEFT JOIN `".TABLE_KAMERAFBEELDINGEN."` ON (".TABLE_KAMERS.".id = ".TABLE_KAMERAFBEELDINGEN.".kamer_id AND filename_original = (SELECT filename_original FROM `".TABLE_KAMERAFBEELDINGEN."` WHERE ".TABLE_KAMERS.".id = ".TABLE_KAMERAFBEELDINGEN.".kamer_id ORDER BY RAND() DESC LIMIT 1)) WHERE ".TABLE_KAMERS.".verhuurder_id = '".$db->escape($user['userdata']['id'])."' GROUP BY ".TABLE_KAMERS.".id ORDER BY ".TABLE_KAMERS.".datum_toegevoegd DESC
Het probleem is dat ik soms een goed resultaat krijg, soms niet alle kamers, en soms kamers zonder een afbeelding terwijl die kamer wel aan afbeelding heeft.
Niet elke kamer heeft dus een afbeelding (vandaar de LEFT JOIN).
Hoe kan ik dit het best doen om alle kamers met 1 bijbehorende random afbeelding te krijgen?
ikki007
|