Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie MySQL, problem z AND
dobryvinyl.com
post
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Witam Szanownych forumowiczów,

moj problem polega, na zapewne jak dla Was prostym zapytaniu:

  1. SELECT p.id, p.nazwa, k.nazwa FROM wyszukiwanie_data d, oferta_produkty p, oferta_kategorie k WHERE (d.parametr_id='2' AND d.wartosc='11.5') AND (d.parametr_id='1' AND d.wartosc='50') AND d.produkt_id=p.id AND p.kat_id=k.id


problem ze gdy dodaje 2 nawias AND (d.parametr_id='1' AND d.wartosc='50') wynik wyszukiwania mimo poprawnych danych jest zerowy,

gdzie jest moj blad?

Za odpowiedzi bardzo dziekuje.


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


select p.id, p.nazwa, k.nazwa from wyszukiwanie_data d, oferta_produkty p, oferta_kategorie k WHERE ((d.parametr_id='2' AND d.wartosc='11.5') OR (d.parametr_id='1' AND d.wartosc='50')) AND d.produkt_id=p.id AND p.kat_id=k.id


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zrobiles same AND, i dales warunki, ktore wzajemnie sie wykluczają. Przeciez jedno pole nie moze jednoczesnie przyjmować dwoch wartosci dla tego samego rekordu.
Dla zrobienia LUB sluzy operator OR


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #4





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


a widzisz tu jest troszke inaczej, jest tabela produkty i zawiera kolumnu id, nazwa itd. do kazdej tabeli kolumny przypisane jest kilka parametrow wyszukiwania z tabeli wyszukiwanie data i teraz jak zrobic zeby kilka wartosci musialo sie zgadzac?

Na przykkladzie

mam w tabeli wyszukiwanie data nasteopujace rekordy_

id/parametr_id/wartosc/produkt_id
1/1/235/100
2/2/34/100
3/2/346/5
4/2/342/67
5/3/342/56
6/1/56/35

i jak teraz wypisac produkty gdzie wartosc parametru_id = 1 oraz wartosc 235 oraz parametru_id = 2 oraz wartosc = 34.
Chciany wynik to produkt o id 100

rozumiesz? czy znow namacilem?


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




hmm...

1) robisz na OR, grupujesz, zliczasz liczbe rekordow z takim samym produktem i pokazujesz tylko te, gdy tych rekordow jest 2
lub
2) piszesz funkcje, ktora zwraca ci ID produktu dla danych warunkow. nastepnie w selecie walisz warunki:
  1. .....WHERE p.ID = funkcja(1,235) AND p.ID = funkcja(2,34)


Przyznam szczerze ze nie miałem styczności z takim problemem wczesniej i pewnie mozna go rozwiązac ładniej niż ja to tu teraz zaproponowalem


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ucho
post
Post #6





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


Pisane z palca, więc może nie działać, ale po prostu:
  1. SELECT
  2. p.id,
  3. p.nazwa,
  4. k.nazwa
  5. FROM wyszukiwanie_data d1,
  6. wyszukiwanie_data d2,
  7. oferta_produkty p,
  8. oferta_kategorie k
  9. WHERE (d1.parametr_id='2' AND d1.wartosc='11.5') AND (d2.parametr_id='1' AND d2.wartosc='50') AND d1.produkt_id=p.id AND d2.produkt_id=p.id AND p.kat_id=k.id
Go to the top of the page
+Quote Post
dobryvinyl.com
post
Post #7





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Sposob podany przez ucho sprawdza sie doskonale. Bardzo dziękuje chłopaki za pomoc.

Ten post edytował dobryvinyl.com 6.12.2008, 10:29:10


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 09:19