Wpis z mikrobloga

Załóżmy, że w bazie mam uzytkowników, a każdy użytkownik może należeć do wielu grup. Mamy więc kulumnę User i Group. Chcę teraz wyciągnąć użytkownika z wszystkimi grupami do których należy. Jak to zrobić najbardziej efektywnie? Zrobić 2 sql, w którym w 1 wyciągam użytkownika, a w 2 wyciągam jego grupy, czy może 1 sql z joinami, no ale wtedy dostaję w wyniku dużo zbuplikowanych danych, więc odpowiedź jest większa.

#sql #programowanie #bazydanych #naukaprogramowania
  • 8
najbardziej efektywny sposób, zeby dostać listę wszystkich userów (którzy są w jakichś grupach), wraz z listą grup to:

select
u.user_id
, u.name
, g.group_id
, g.group_name
from usergroup ug
join user u on ug.user_id = u.user_id
join group g on ug.group_id_id = g.group_id

bazy danych są zoptymalizowane pod kątem wykonywania takich operacji jak łączenie tabel (joiny), więc najlepsze rozwiązanie to wykorzystać bazę w tym celu