Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> grupowanie wynikow.
sindbad_zeglarz
post 28.06.2012, 09:10:08
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


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 ?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
skowron-line
post 28.06.2012, 09:13:48
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Brakuje Ci w zapytaniu GROUP_BY


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
sindbad_zeglarz
post 28.06.2012, 10:01:17
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował sindbad_zeglarz 28.06.2012, 10:25:50
Go to the top of the page
+Quote Post
nospor
post 28.06.2012, 10:27:19
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@skowron-line niczego nie brakuje
@sindbad pytasz przecież o to w innym temacie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:06