![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czesc, mam nastepujacy problem z zapytaniem: uzytkownik moze miec item'y lub moze miec grupy ktore maja itemy.
W tym pierwszym przypadku dane sa przechowywane w tabeli user_to_items, zas w drugim mamy item_to_groups Potrzebuje 1 zapytanie wyciagnac id oraz name itemow:
Jak widac, mam podane group_id. Problem jest taki ze te warunki sie wykluczaja bo mam AND user_to_item.user_id = 117 oraz AND item_to_group.group_id IN (77,75,76,81,82) i wynik jest 0. Gdy zas usune AND user_to_item.user_id = 117 z sql'a to otrzymam wyniki odpowiednie dla tego drugiego warunku (AND item_to_group.group_id IN (77,75,76,81,82) ) niestety trace wtedy to co jest w tabeli user_to_item. I na odwrot to samo - jak zostawie warunek dla user_to_item to otrzymam wyniki z tej tabeli jednak strace to co jest w item_to_group. Czy moge to wyciagnac jakos 1 zapytaniem? pzdr, misty dobra, rozwiazanie okazalo sie banalne, wystarczylo uzyc or: SELECT DISTINCT(item.id), item.name FROM items LEFT JOIN user_to_item ON user_to_item .item_id = item.id LEFT JOIN item_to_group ON item_to_group.item_id = item.id WHERE 1 AND( user_to_item.user_id = 117 or item_to_group.group_id IN (77,75,76,81,82) ) pzdr, misty |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:00 |