![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 5 Dołączył: 29.02.2016 Ostrzeżenie: (0%) ![]() ![]() |
Męczę się już z tym jakiś czas i za bardzo nie wiem jak to zrobić w MySQL,
chciałbym połączyć 3 tabele: users, users_in_groups, users_groups, chciałbym aby return array wyglądał tak:
Mam kod:
Zwraca:
W takim układzie mam utrudniony odbiór danych, nie użyję pętli foreach ( zwróci 3 razy to samo, z innymi grupami ). Mam jeszcze problem z użytkownikami, którzy nie należą do żadnej z grup, chciałbym mieć ich też w tym widoku ( chyba najlepiej by było, żeby ich user_in_groups był NULL a nie array ). |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli id użytkownika jest inne niż poprzednie, tzn. że jest to nowa grupa, jeśli takie same, jesteśmy w kolejnym rekordzie podrzędnym.
Wystarczą odpowiednie warunki w pętli for (przy "odbiorze danych"). http://www.w3schools.com/sql/sql_join_left.asp -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 5 Dołączył: 29.02.2016 Ostrzeżenie: (0%) ![]() ![]() |
W sumie mogę tak to w PHP zaimplementować,
czy zawsze będą te same user_id obok siebie? Nie potrzeba GROUP BY / ORDER BY ? Mam problem z LEFT JOINem, jeżeli dobrze rozumiem to funkcja zwraca całą lewą tabelę, z pasującymi wierszami z prawej.. Mam taki kod:
Czyli rezultatem powinny być id wszystkich użytkowników i grupy do których należą ( jeżeli należą ). Jednak zwraca mi wszystkich użytkowników przypisanych do wszystkich grup. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ORDER BY.
W zapytaniu występuje dwa razy tabela users. W LEFT JOIN ma być tabela, w której może "brakować" rekordów. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 5 Dołączył: 29.02.2016 Ostrzeżenie: (0%) ![]() ![]() |
Gdy nie podam users we FROM mam błąd:
Kod #1054 - Unknown column 'users.id' in 'on clause' w ten sposób, też nie działa:
Wyświetla tylko użytkownik którzy są w jakiejś grupie ( OK było by pół zapytania, jakbym dołożył do tego resztę users ) ale po kilka razy... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:19 |