Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JOIN a klauzula WHERE
Forum PHP.pl > Forum > Bazy danych > MySQL
parzol
Witam.

Mam następujące zapytanie:

  1. SELECT r.id AS room_id FROM room r
  2.  
  3. LEFT JOIN property p ON r.property_id=p.id
  4. LEFT JOIN (SELECT tt .sraka FROM (SELECT attraction_id AS sraka, property_id AS dom_id, NULL AS pokoj_id FROM property_attraction UNION
  5.  
  6. SELECT attraction_id AS sraka, NULL AS dom_id, room_id AS pokoj_id FROM room_attraction) tt) t ON 1=1
  7.  
  8. WHERE r.is_apartment=1 AND t.sraka IN (14,17) AND t.dom_id=p.id AND t.pokoj_id=r.id GROUP BY r.id
  9.  
  10. HAVING COUNT(DISTINCT t.sraka) >= 2
  11.  
  12. ORDER BY p.is_promoted DESC LIMIT 0, 51


Problem stwarzają t.dom_id oraz t.pokoj_id w głównym WHERE - nie widzi takich kolumn z JOINa.

Ktoś ma pomysł jak do tego dotrzeć?
zelu
Mieszasz wywołania "zmiennych" raz podajesz nazwy kolumn, raz podajesz aliasy, itp... i nie uzywaj r.alias tylko samego aliasu (bez przedrostka r.)


Pozdro
parzol
Gdzie niby mieszam konkretnie? Jak mogę bez przedrostka - skąd będzie wiedzieć która to tabel jeśli pola się powtarzają?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.