Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JOIN tabeli z nazwą zapisaną w bieżącej kolumnie?
Forum PHP.pl > Forum > Bazy danych > MySQL
ebe
Mam problem chcę dynamicznie dołączać poprzez join tabelę której nazwa jest podana w tabeli do której ma być dołączona tabela

  1. SELECT *
  2. FROM nodes n
  3. JOIN models m ON (n.model = m.id)
  4. JOIN m.class o ON(n.element_id = o.id)
  5. WHERE n.id = 1


m.class jest kolumną tabeli models dołączonej do tabeli nodes, w tej kolumnie trzymane są nazwy tabel. Oczywiście w obecnej formie to nie działa bo mysql traktuje m.class jako nazwę tabeli a ja chcę aby pobierał wartość m.class i dołączał tabelę w zależności od zawartości kolumny m.class. Mam nadzieję, że jasno się wyraziłem. Czy wogóle taki trck jest możliwy w mysql?
behemot
Witam,

Musisz uzyc podzapytan. Sa juz podobno w wersji mySQL 4.1. Wtedy Twoje zapytanie bedzie wygladalo jakos tak:

  1. SELECT *
  2. FROM nodes n
  3. JOIN models m ON (n.model = m.id)
  4. JOIN (SELECT nazwa_tabeli FROM models) o ON(n.element_id = o.id)
  5. WHERE n.id = 1


Ale czy w zlaczaniu sie da podzapytania wykorzystac to nie wiem. Musisz sprawdzic.

Pozdrawiam,
kuba
ebe
Dzięki, ale to nie zadziała. Tego w Mysql chyba się nie da zrobić, cóż będę musiał dobierać dane innym zapytaniem nie będzie to zbyt optymalne, ale zadziała.
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.