![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 13.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Problem jest blahy na pierwszy rzut oka ale napsul mi wystarczajaco duzo krwi a i tak nie wiem jak go rozwiazac wiec zwracam sie do Was o pomoc. Mam 3 tabele Restauracje, Posilki_Restauracji, Posilki. :arrow: Restauracje (id_rest,.....) :arrow: Posilki (id_pos, nazwa_pos) :arrow: Posilki_Restauracji (id_rest, id_pos) Restauracje moga miec zero lub wiele posilkow. Uzytkownik chce znalezc restauracje, ktora oferuje jednoczesnie np. pizze (id_pos=1), hamburgery (id_pos=2) i hot-dogi (id_pos=3). PYTANIE : Jakie zadac zapytanie do bazy, by zwrocila id_rest tylko takich restauracji, ktore spelniaja wszystkie 3 warunki (warunkow moze byc oczywiscie dowolna ilosc ograniczona jedynie iloscia zdefinowanych posilkow w tabeli Posilki) ?!? Po trzech bezowocnych godzinach siedzenia nad tym zupelnie stracilem koncepcje i wiare ze mozna to zrobic... Bardzo licze na pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 13.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Shima, oczywiscie ze nie ma to byc czyste zapytanie sql. Skrypt php jak najbardziej mile widziany (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Spenalzo, zapytanie w postaci : [sql:1:5bfe631829]SELECT r.* FROM restauracje r, posilki_restauracji pr,posilki_restauracji pr2, posilki_restauracji pr3 WHERE r.id_rest=pr.id_rest AND pr.id_pos = 1 AND pr2.id_pos = 2 AND pr3.id_pos = 3 GROUP BY r.id_rest [/sql:1:5bfe631829] zwraca, tak jak mowilem, restauracje, ktore maja jeden z zadanych posilkow a nie tylko te, ktore maja je wszystkie jednoczesnie. Jednak jak zmieni sie troche Twoje zapytanie na : [sql:1:5bfe631829]SELECT r.* FROM restauracje r, posilki_restauracji pr,posilki_restauracji pr2, posilki_restauracji pr3 WHERE r.id_rest=pr.id_rest AND r.id_rest=pr2.id_rest AND r.id_rest=pr3.id_rest AND pr.id_pos = 1 AND pr2.id_pos = 2 AND pr3.id_pos = 3 GROUP BY r.id_rest [/sql:1:5bfe631829] wydaje sie ze to dziala prawidlowo - potestowalem troche i zwraca dobre wyniki. Moze zle przepisales wczesniejsze zapytanie i dlatego u Ciebie to chodzilo a u mnie nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zrobie wiecej INSERTow i potestuje na wiekszej bazie, ale wydaje sie ze to jednak TO... Wielkie dzieki Spenalzo (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Inne rozwiazania bardzo mile widziane. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 16:14 |