Cytat(nevt @ 28.08.2008, 08:11:56 )

To będzie coś w rodzaju:
SELECT `property`.* FROM `property` LEFT JOIN `property_attraction` ON `property`.`id` = `property_attraction`.`property_id` WHERE `attraction_id` IN (value_1, value_2) GROUP BY `property`.`id` HAVING COUNT(`attraction_id`) = 2;
Samo w sobie to działa. Ale po dołączeniu do mojego zapytania SQL dalej wyrzuca Empty Set.
O to moje zapytanie:
SELECT r.id AS room_id, r.name AS room_name, p.id AS property_id, p.name AS property_name, c.name AS city, region.name AS region, p.standard, rg.file, MIN(rp.price) AS min_price, MAX(rp.price) AS max_price,
GROUP_CONCAT(DISTINCT CONCAT(a.name, '*', a.icon) ORDER BY a.name SEPARATOR '|') AS attractions, r.description AS opis, r.bedroom_number AS l_sypialni, r.room_number AS l_pokoi, GROUP_CONCAT(DISTINCT CONCAT(t.name) ORDER BY t.name SEPARATOR '|') AS typ, r.is_apartment AS apartament
FROM room r LEFT JOIN property p ON r.property_id=p.id
LEFT JOIN room_gallery rg ON rg.room_id=r.id
LEFT JOIN room_price rp ON rp.room_id=r.id
LEFT JOIN region ON p.region_id=region.id
LEFT JOIN city c ON p.city_id=c.id
LEFT JOIN property_attraction pa ON p.id=pa.property_id
LEFT OUTER JOIN attraction a ON pa.attraction_id=a.id AND (a.is_active=1 OR a.is_active IS NULL)
LEFT JOIN property_category pc ON p.id=pc.property_id
LEFT JOIN room_type rt ON rt.room_id=r.id
LEFT OUTER JOIN type t ON rt.type_id=t.id AND (t.is_active=1 OR t.is_active IS NULL)
WHERE pa.attraction_id IN(3,9) GROUP BY r.id HAVING COUNT(pa.attraction_id)=2 ORDER BY p.is_promoted DESC LIMIT 0, 51;
Jakiś pomysł? Wskazówka?