Mam tabelę z usługami jakie oferuje użytkownik
nazwa: services_users
id | id_user | service_symbol |
---|---|---|
1 | 16 | drugs |
2 | 832 | sex |
3 | 4873 | guns |
Teraz taki użytkownik zaznacza sobie w jakim mieście lub jakim województwie oferuje usługi. jest do tego tabela kolejna i ma ona takie pola
nazwa: services_locations
id | services_user_id | location_symbol | value |
---|---|---|---|
1 | 1 | provinces_kupo | 1 |
1 | 1 | provinces_pors | 0 |
1 | 2 | cities_torn | 1 |
1 | 3 | cities_torn | 1 |
W tabeli powyżej usługi o ID 1 są oferowane w całym kujawsko-pomorskim
Jest tez osoba która oferuje takie usługi tylko w Toruniu
Osoba, która szuka usług może zaznaczyć miasto lub województwo. Powiedzmy, że zaznaczyła że ma pokazać wszystkich ludzi z województwa kujawsko-pomorskiego. Jak wyszukać i pokazać tych którzy zaznaczyli np Toruń?
Mam trzecią tabele
nazwa: location_links
id | symbol | parent_symbol |
---|---|---|
1 | countries_pl | null |
2 | provinces_kupo | countries_pl |
3 | provinces_pors | countries_pl |
4 | cities_torn | provinces_kupo |
Na razie wymyśliłem takie zapytanie i utknąłem
SELECT DISTINCT su.id, su.services_symbol, sl.*
FROM services_users su
LEFT JOIN services_locations sl ON sl.services_users_id = su.id
WHERE sl.location_symbol = 'provinces_kupo' AND sl.value = 1