Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem. Niby proste a jednak
Rafix24
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
spenalzo
post
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Hmm przyjrze sie temu jutro (bo jest już troche późno) ale jedyny sposób to taki:
[sql:1:6ea5c7cbf5]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:6ea5c7cbf5]
Czyli tyle dołączeń tabeli ile szukanych posiłków.

Przy okazji - pozakładaj indeksy w tabeli posilki_restauracje, przyspieszy szukanie.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 15:27