Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: grupowanie wynikow.
Forum PHP.pl > Forum > Bazy danych > MySQL
sindbad_zeglarz
Mam problem z napisaniem zapytania wiażącego 3 tabele.
Tak aby grupowało wynik.

tabela1 (dom)

  1. tabela1 nazwa (dom)
  2. id |nazwa | nr domu
  3. 1 | dom1 | 20
  4. 2 | dom2 | 30
  5. 3 | dom3 | 40
  6.  
  7. tabela2 (wlasciciel)
  8.  
  9. id|imie|nazwisko|adres
  10. 1 | janek1 | nowak1| 20
  11. 2 | janek2 | nowak1| 30
  12. 3 | janek3 | nowak1| 40
  13.  
  14. tabela3 (łacząca idiki)
  15. dom_id | wlascisciel_id
  16. 1 | 1
  17. 1 | 1
  18. 1 | 1
  19. 2 | 3
  20. 3 | 3
  21.  
  22.  


Jak optymalnie napisac zapytanie?
aby grupowało wyniki. Wlasciciel może miec 2 domy lub wiecej.
Teraz jak napisałem.
  1. SELECT * FROM tabela1 dom
  2. LEFT JOIN tabela3 wmd ON wmd.dom_id = dom.id
  3. LEFT JOIN tabela2 w ON wmd.wlasciciel_id = w.id


fajnie pogrupowało zapytanie.
Ale wszedzie tam gdzie dom ma 2 wlascicieli to powtarza wpis z domem.

  1. DOM_id |nazwa| imie | nazwisko
  2. 1 | dom1 | janek1 | nowak1
  3. 1 | dom1 | janek1 | nowak1
  4. 1 | dom1 | | janek1 | nowak1
  5. 2 | dom2 | janek3 | nowak3
  6. 3 | dom3 || janek3 | nowak3


bez sensu powtarazć to samo
Jest jakiś sposób aby sobie z tym poradzic ?

skowron-line
Brakuje Ci w zapytaniu GROUP_BY
sindbad_zeglarz
gdzie?

SELECT * FROM tabela1 dom
LEFT JOIN tabela3 wmd ON wmd.dom_id = dom.id
LEFT JOIN tabela2 w ON wmd.wlasciciel_id = w.id GROUP BY dom.id

No fajnie, ale pokazuje tylko jednego wlasciciela do domu.
nospor
@skowron-line niczego nie brakuje
@sindbad pytasz przecież o to w innym temacie.
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.