Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: UNION z warunkiem
Forum PHP.pl > Forum > Bazy danych > MySQL
baca75
Witam,

Mam dwie tabele o identycznej strukturze, w zapytaniu jedna jest rodzicem, druga dzieckiem. Chcę wyciagnąć listę: rodzice (groupid = 0) -> dzieci (groupid = id rodzica). Zapytanie:

CODE
SELECT * FROM

     ((SELECT * FROM knowhow AS parent) UNION (SELECT * FROM knowhow AS child))

AS list

WHERE parent.groupid=0 AND parent.id=child.groupid


MySQL zwraca błąd w zapytaniu. Gdzie może być?
szopen
błąd o treści...? [przenieś WHERE do podzapytań]
nevt
list jest słowem zastrzeżonym w MySQL, dodaj `odwrócone apostrofy` do nazw tabel i pól:
  1. SELECT * FROM ((SELECT * FROM `knowhow` AS `parent`) UNION (SELECT * FROM `knowhow` AS `child`)) AS `list` WHERE `parent`.`groupid`=0 AND `parent`.`id`=`child`.`groupid`;
baca75
Panowie,

Dziękuję za błyskawiczną pomoc. Jednak błąd jest gdzieś indziej, bowiem

  1. SELECT * FROM ((SELECT * FROM knowhow AS parent) UNION (SELECT * FROM knowhow AS child)) AS lista WHERE parent.groupid=0 AND parent.id=child.groupid


zwraca błąd "Unknown column 'parent.groupid' in 'where clause'" (pole występuje z całą pewnością).

Czy błąd może wynikać z tego, że dwa razy - ale z innymi warunkami - pytam fizycznie tę samą tabelę? sadsmiley02.gif  Przy JOIN nie ma z tym najmniejszych problemów...
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.