Pobieranie danych z trzech tabel, relacje |
Pobieranie danych z trzech tabel, relacje |
28.01.2015, 13:14:45
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:
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 -------------------- człowiek nie sznurek wszystko wytrzyma
|
|
|
28.01.2015, 13:24:57
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
Jak chcesz dostac tylko jeden rekord dla danego usera to masz uzyc GROUP BY oraz GROUP CONCAT
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
28.01.2015, 13:29:06
Post
#3
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) |
|
|
|
28.01.2015, 13:29:59
Post
#4
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 8.07.2005 Skąd: EU Ostrzeżenie: (0%) |
dzięki za szybką odpowiedź,
męcze sie z tym nieszczęśliwym group by, czyli group by ludzie.id, tak? ale nie mam pojęcia gdzie wstawić GROUP CONCAT i jak zrobić aby w jednym rekordzie przy imieniu wypisalo wszystkie grupy, mogłbyś podać przykład, plis -------------------- człowiek nie sznurek wszystko wytrzyma
|
|
|
28.01.2015, 13:31:05
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
aniolek podal przyklad
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
28.01.2015, 18:35:05
Post
#6
|
|
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 | - |
czy można użyć to powyższe zapytanie modyfikując je czy należało by zastosować zupełnie coś innego ? -------------------- człowiek nie sznurek wszystko wytrzyma
|
|
|
28.01.2015, 21:18:00
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
Poczytaj o LEFT JOIN zamiast wkladac wszystkie tabele do FROM
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.01.2015, 09:41:29
Post
#8
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) |
Poczytaj cokolwiek o podstawach MySQL, bo to są naprawdę "basic things"...
Możesz jeszcze dodać COALESCE jak byś chciał zwracać jaka inna wartość. Ten post edytował aniolekx 29.01.2015, 09:42:01 |
|
|
29.01.2015, 10:49:51
Post
#9
|
|
Grupa: Zarejestrowani Postów: 281 Pomógł: 0 Dołączył: 8.07.2005 Skąd: EU Ostrzeżenie: (0%) |
jeszcze raz dziękuję za pomoc.
-------------------- człowiek nie sznurek wszystko wytrzyma
|
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 01:51 |