Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zwracanie rekordów spełniających wszystkie kryteria
proffix
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.07.2007

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


Witam,

mam następujący problem z wyciągnięciem z tabeli tylko tych id , które jednocześnie spełniają wszystkie kryteria wyszukiwania. Struktura tabeli wygląda następująco:

fields_products_id int(11) - klucz, autoincrement
field_id smallint(5)
products_id smallint(5)

W tabeli znajdują się różne rekordy mające te same wartości products_id.Przykładowo mamy produkt A o jednym products_id który jednocześnie posiada 3 rekordy z field_id = 1,2,3 i produkt B mający tylko 2 rekordy field_id = 1,3.

Staram się wyciągnąć z bazy tylko te products_id które spełniają jednocześnie warunek posiadania field_id = 1,2 i 3. Metody jakich próbowałem również nie działają:

1. Prosta kwerenda SELECT * FROM tabela WHERE field_id = 1 and field_id = 2 and field_id = 3
Nie zwraca niczego.

2. Podobnie j.w. jest przy stosowaniu więcej niż jednego AND .

3. SELECT * FROM tabela WHERE field_id IN (1,2,3)
Zwraca również te produkty które nie mają 2 ale posiadają przynajmniej jedną z pozostałych wartości

4. Podkwerendy też nie tj. nie zwracają niczego lub zwracają wszystkie rekordy

Nie wiem już kompletnie jak się do tego zabrać. Najprostsze rozwiązania już wykorzystałem, a niestety nie jestem Guru SQL.

Z góry dziękuję za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Adam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
joebezucha
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 1
Dołączył: 23.05.2007
Skąd: Gliwice

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


Nie wiem czy to zadziala:) ale sprawdz

  1. SELECT products_id, COUNT(field_id) AS 'zlicz'
  2. FROM tabela WHERE field_id = 1 OR field_id = 2 OR field_id = 3
  3. GROUP BY products_id
  4. HAVING zlicz = 3
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: 5.10.2025 - 11:15