Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie danych z trzech tabel, relacje
yalus
post
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


Witam,

próbuję wyciągnąć dane z trzech tabel ale jakoś słabo mi to idzie, próbuję na różne sposoby ale i tak stoję w miejscu, czy mógłby ktoś mi trochę pomóc?

mam trzy tabele

Pierwsza tabela o nazwie` ludzie`

id | imie | nazwisko |
---------------------------
1 | jan | kowalski |


druga tabela o nazwie `grupy`
id | grupa |
----------------
1 | grupa1 |
2 | grupa2 |
3 | grupa3 |



trzecia tabela o nazwie `ludzie_w_grupie`
id_ludzie | id_grupa
-----------------------
1 | 1
1 | 2
1 | 3


wg. powyzszych danych wynika, że człowiek Jan Kowalski o id = 1 nalezy do trzech grup do grupy 1,2 i 3
aby wyciągnąc dane z tych 3 tabel robię coś takiego:


  1. $sql = "select * from ludzie, grupy, ludzie_w_grupie where ludzie.id = ludzie_w_grupie.id_ludzie and ludzie_w_grupie.id_grupa = grupy.id"



wynik jaki dostaje jest nastepujacy:

jan kowalski | grupa1
jan kowalski | grupa2
jan kowalski | grupa3

czyli dostaje 3 rekordy , a ja chciałbym dostać jeden rekord mniej wiecej taki:

jan kowalski | grupa1, grupa2, grupa3 |


jak powinienem skonstruować zapytanie aby to osiągnąć? czy mógłby mnie ktoś naprowadzić,
z góry bardzo dziękują za pomoc,


Pozdrawiam
yalus

Ten post edytował yalus 28.01.2015, 13:17:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
yalus
post
Post #2





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


super!,
dzięki serdeczne wszystko działa. Brakowało mi tego GROUP_CONCAT

pozdrawiam

witam ponownie,

wszystko dział bardzo dobrze tylko nie przewidziałem jednego, co jeżeli użytkownik nie należy do żadnej grupy?
to rozwiązanie nic nie wyświetli a ja chciałbym w takim przypadku wyświetlić rekord z użytkownikiem następująco:


imie | grupa |
------------------------------
jan kowalski | - |


  1. SELECT ludzie.imie, GROUP_CONCAT(grupy.grupa) FROM ludzie, grupy, ludzie_w_grupie WHERE ludzie.id = ludzie_w_grupie.id_ludzie AND ludzie_w_grupie.id_grupa = grupy.id GROUP BY (ludzie.id)


czy można użyć to powyższe zapytanie modyfikując je czy należało by zastosować zupełnie coś innego ?

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 11:27