Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Struktura zapytań
Fred1485
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Cześć znów,

od razu przechodzę do rzeczy:

tabela users:

id | login | password | primary_group | registration

tabela groups:

id | name | description |

tabela user_has_group

user_id | group_id

i teraz chcąc poznać jakie grupy posiada dany użytkownik to wklepuję zapytanie typu:

  1. SELECT users.login, groups.name FROM users, groups, user_has_group WHERE users.id = user_has_group.user_id AND groups.id = user_has_group.group_id;


oczywiście działa, zaznaczam że nigdy nie brałem się za złączania (dobrze mówięquestionmark.gif) tylu JOIN itp.
I teraz pytanie czy takie zapytania ze złączeniami robić czy tak jak teraz robię wystarczy?



--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Twoje zapytanie nie wyswietli uzytkownikow, ktorzy nie mają grup.

A przykladowo taki LEFT JOIN pozwala na wyswietlenie wszystkich userow niezaleznie czy mają grupy czy nie.


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

"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
Fred1485
post
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Ok ale mając moje zapytanie chcąc zapytać czy user należy do jakiejś grupy policze w php ilosc rekordow i jak zwroci 0 to nie będzie nigdzie należał a uzywajac left join i tak rekord z null zwróci?

Ten post edytował Fred1485 30.07.2015, 12:46:59


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




Ale jak chcesz zapytac czy user nalezy do jakiejs grupy to wystarczy ze zrobisz
select count(*) from user_has_group where user_id=3 and group_id=4
i juz


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

"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
Fred1485
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


no ok to pozostaje lekturka o złączeniach.


--------------------
  1. echo 'I was trying';
  2. die ();
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 Aktualny czas: 20.08.2025 - 17:53