Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak wylistować produkty ?
tomroy
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 13.11.2006

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


Hej

Mam następujące tabele:

Products
id name
1 tv
2 dvd
3 cd

Features
id name
1 battery
2 cables
3 manual

Product_features
product_id feature_id
1 1
1 2
2 1
3 2


Jaki bedzie sql który wylistuje produkty które mają baterie i kable.
Wynikiem powinien być jeden rekord tv.

Tomek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
wijet
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


Troche to wolne bedzie... (i tak na około) ale chyba mozna zastapic jedno z podzapytan joinem.

  1. SELECT * FROM products WHERE id IN(SELECT p_id FROM p_f WHERE f_id IN (SELECT id FROM features WHERE name = 'cables' OR name = 'battery') GROUP BY p_id HAVING COUNT(p_id) = 2);


tabela Product_features to umnie p_f,atrybuty to p_id,f_id

EDIT:
wersja szybsza
  1. SELECT p.id,p.name FROM features AS f,products AS p,p_f WHERE f.id = p_f.f_id AND p.id = p_f.p_id AND (f.name = 'cables' OR f.name='battery') GROUP BY p.id HAVING COUNT(p.id) = 2


nie działają entery w kodzie SQL angrysmiley.gif

Ten post edytował wijet 14.11.2006, 00:31:37


--------------------
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: 19.08.2025 - 23:26