Mam takie drobne pytanie dotyczące optymalizacji prostego zapytania
posiadam tabelki (dla uproszczenia przyjmijmy że wszystko jest liczbami)
założenia
-Każdy user może należeć do wielu grup
-Każda grupa może zawierać wiele sekcji
co w czym
tabela USER_GROUP:
zawiera Liste w postaci
id_usera oraz Id grupy do której dany user należy wraz z czasem
przynaleznosci od dnia do dnia.
tabela GROUP_SECTION
zawiera id_grupy oraz id_sekcji należącej do grupy
(jedna grupa może zawierać wiele sekcji)
TABELE:
*USER_GROUP
ug_id
user_id
group_id
member_from
member_to
*GROUP_SECTION
gs_id
group_id
section_id
WĄTPLIWE ZAPYTANIE mające na celu wybranie tych sekcji do których ma dostep uzytkownik:
SELECT USER_GROUP.*, GROUP_SECTION .section_id
FROM `USER_GROUP`
JOIN GROUP_SECTION ON USER_GROUP.group_id = GROUP_SECTION.group_id
WHERE USER_GROUP.user_id =1
Zapytanie najpierw to zapytanie pobierze wszystko z tabeli USER_GROUP
zrobi JOINA z GROUP_SECTION i wybierze rekordy z podanym id usera
a powinno
- pobrać z tabeli USER_GROUP tylko te krotki w których jest
USER_GROUP.user_id =1 i dopiero wtedy połączć to joinem z tabelą GROUP_SECTION po
USER_GROUP.group_id = GROUP_SECTION.group_id
Jak tego dokonać bo próbuję i nie działa nic :)