Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Myql JOIN wyniki w jednym wierszu, czy możliwe?
Forum PHP.pl > Forum > Bazy danych > MySQL
KarolOl
Witam.

Zastanawiam się, czy wynik złączenia mogę otrzymać w jednym wierszu (myśle, czy to co chce uzyskać dam radę za pomocą 1 zapytania).
Mamy dwie tabele:

Tabela 1 (id,opis,id_klucz),
Tabela 2 (id_zdjecia,id,path);

  1. SELECT t1.id,t1.opis,t2.path,t1.id_klucz FROM tabela1 t1
  2. LEFT JOIN tabela2 t2 ON (t1.id = t2.id)
  3. WHERE t1.id_klucz = $zmienna ;


Sęk w tym, że produkt z tabel1 (id) mógłby posiadać 2 lub więcej zdjęć. Ale nie chce duplikować wierszy w wyniku tabelarycznym tylko dlatego że jakiś produkt trafi na dwa zdjęcia.
Ścieżkę do zdjęcia podaję w linku gdzie po najechaniu dostaje operator podgląd poprzez jQuery i gdy są dwa zdjęcia chciałbym wygenerować dwa linki obok siebie w jednej kolumnie.

Na tą chwilę mam tylko pomysł, by przy generowaniu tabeli sprawdzać osobnym zapytaniem ile jest zdjęć do produktu o danym id (z tabeli 1) i je z tablicy wypisać do danego wiersza.
Myślę że się dobrze wyraziłem.

Wiem, że nie działa tak LEFT JOIN ale może jest jakiś inny sposób na rozwiązanie tej kwestii.
Turson
Żeby otrzymać w jednym wierszu to musiałbyś robić podzapytania, ale to bezsensu, chyba że znasz od razu PK identyfikujący wiersz, ale pewnie nie.
KarolOl
No klucz mam (związanym relacją w innodb jeden do wielu) to tabela1 (id) -> tabela2 (id). Oczywiście (id) mam pośrednio bo wybieram zadane wartości z tabeli1 po znanym id_klucz.

Przykład dokładny jaki problem.

Mam transport (to jest mój id_klucz). Do niego przylegają palety (id), i trafia się paleta z MIXem kolorów, więc cechuje ją w osobnej tabeli jakie kolory składają się na mixa. (tabela mix_kolory id_mix,id_paleta,id_kolor). Analogicznie sprawa tyczy się zdjęć.
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.