Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SELECTY Kilka tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
reptile_rex
Witam mam pewien problem, mianowicie mam pewne dane, i aby uzyskać z nich całość muszę wyciągnąć informację z paru tabel.
Póki co Udało mi się wyciągnąć dane mniej więcej w takim formacie:

  1. tabela1.id | tabela1.nazwa | tabela2.id | tabela2.idtabeli1 | tabela2.nazwisko
  2. 1 | nazwa1 | 1 | 1 | Kowalski
  3. 1 | nazwa1 | 2 | 1 | Nowak
  4. 2 | nazwa2 | 3 | 2 | Nowakowski
  5. 2 | nazwa2 | 4 | 2 | Kowalsky
  6. 2 | nazwa2 | 5 | 2 | Nowakowsky
  7. 3 | nazwa3 | 6 | 3 | Smith


Tzn, że rekordy są powielane, zbytnio mnie to nie urządza.
Czy jest możliwość aby Otrzymać dane np tak:

  1. tabela1.id | tabela1.nazwa | tabela2.id | tabela2.idtabeli1 | tabela2.nazwisko
  2. 1 | nazwa1 | 1 | 1 | Kowalski, Nowakowski, Nowakowski2, Nowakowski3
  3. 2 | nazwa2 | 3 | 2 | Nowakowski, Nowakowski8, Nowakowski55, Nowakowski333
  4. 3 | nazwa3 | 6 | 3 | Smith, Smith4, Smith8
Crozin
Podpowiedź: funkcja GROUP_CONCAT() oraz klauzura GROUP BY.
reptile_rex
Dzięki wielkie GROUP_CONCAT prawie rozwiązał mój problem, jeszcze mam jedno pytanie.

Mam teraz przykładowo kolumnę:

  1. nazwa
  2. To_samo,To_samo,To_samo,To_samo,Inne,Jeszcze Inne


Czy istnieje sposób, aby nie powielać rekordów ?
tzn aby otrzymać coś takiego:

  1. nazwa
  2. To_samo,Inne,Jeszcze Inne

Crozin
Można - dokumentacja GROUP_CONCAT
reptile_rex
Dobra, mam dzięki wielkie.
Dla innych, którzy szukają podobnych rozwiązać chodzi o: GROUP_CONCAT(DISTINCT)
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.