Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Jeden do wielu, zapytanie
evolucja
post 12.02.2013, 21:49:19
Post #1





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


Tabela klienci
klientId|imie|nazwisko

Tabela grupy
grupaId|nazwaGrupy

Tabela klienci_grupy
klientId|grupaId|pracownik

Jeden klient może być w wielu grupach. Jak pobrać klientów występujących w grupie 1 lub 2(a np. jest dopisany do 10 grup)?

Proszę o pomoc smile.gif


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
daniel1302
post 12.02.2013, 21:56:26
Post #2





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


  1. SELECT k.klientId, k.imie, k.nazwisko, g.grupaId, g.nazwaGrupy, c.pracownik FROM klienci_grupy c LEFT JOIN grupy g ON g.grupaId=c.grupaId LEFT JOIN klienci k ON k.klientId=c.klientId
Go to the top of the page
+Quote Post
evolucja
post 12.02.2013, 22:13:06
Post #3





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


i jak dodam do tego warunek
WHERE g.grupaId = 1 OR g.grupaId = 2
to jak klient jest w obu grupach to będzie występował dwukrotnie..


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
daniel1302
post 12.02.2013, 22:17:59
Post #4





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


  1. SELECT k.klientId, k.imie, k.nazwisko, g.grupaId, g.nazwaGrupy, c.pracownik FROM klienci_grupy c LEFT JOIN grupy g ON g.grupaId=c.grupaId LEFT JOIN klienci k ON k.klientId=c.klientId WHERE g.grupaId = 1 OR g.grupaId = 2 GROUP BY k.klientId
Go to the top of the page
+Quote Post
evolucja
post 12.02.2013, 22:22:38
Post #5





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


Okej, całkiem logiczne. Tylko, że wtedy znowu będzie w wynikach widoczna jedna grupa, ale to nic, poradzę sobie inaczej.
Rozumiem, że wszystkie zapytania korzystające z takich relacji formułujemy w sposób pobierający dane z tabeli łączącej, a nie jak na początku próbowałem - z jednej z danymi?


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
daniel1302
post 12.02.2013, 22:35:31
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Najprościej tak było. Możesz posortować wg klientId, i wtedy skrypt zajmie się łączeniem grup.
Go to the top of the page
+Quote Post

Reply to this 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: 13.07.2025 - 19:16