Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zwracanie rekordów spełniających wszystkie kryteria
Forum PHP.pl > Forum > Bazy danych > MySQL
proffix
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 smile.gif

Pozdrawiam
Adam
joebezucha
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
Riggs
  1. <?php
  2. SELECT * FROM tabela WHERE field_id = 1 and field_id = 2 and field_id = 3
  3. ?>


Zamiast AND użyj OR, bo to zapytanie szuka pól których wartość pola field_id jest jednocześnie równa 1, 2 i 3.
proffix
Dziękuję wszystkim za pomoc. Udało się smile.gif)

Z testu wynika że niezależnie czy jest and czy or , wyniki zwracane są prawidłowo. Dla mnie zupełnie nielogiczne ale cóż biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.