Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie - połączenie dwóch tabel
Forum PHP.pl > Forum > Bazy danych
xradar
Witam.

Mam następujący problem z zapytaniem do bazy danych MySQL (nie bardzo wiem jak je skonstruować).

Mam tabele:

Produkty(id, nazwa)
1, myszka komputerowa logitech
2, myszka komputerowa a4tech

Opcje(id, produkt_id, wartosc)
1, 1, USB
2, 1, czarna
3, 1, przewodowa
4, 2, USB
5, 2, szara
6, 2, przewodowa

Problem polega na tym, że chciałbym pobrać przykładowo:
wszystkie produkty które są USB i jednocześnie mają kolor czarny.

Łatwo jest pobrać wszystkie które są USB "lub" są czarne, ale jakoś nie mogę zrobić tego z łącznikiem "i", choć pewnie jest to bardzo proste.

Z góry bardzo dziękuję za pomoc.
kevinsz
Jakoś tak przychodzi mi tylko do głowy:
  1. SELECT nazwa FROM `produkty` p, opcje o WHERE p.id=o.produkt_id AND o.wartosc='USB' AND o.produkt_id IN (SELECT produkt_id FROM opcje o2 WHERE o2.wartosc='czarna')


Ale kiepsko to widzę z rozszerzalnością, jeśli produkt ma być USB, czarny, kwadratowy, bezprzewodowy... winksmiley.jpg
xradar
Dzięki za pomoc smile.gif
Rozwiązałem to przez kilkukrotne zastosowanie JOINa. Działa smile.gif Ale jest trochę wolne, więc sprawdzę też sposób z dwoma SELECTami.

No ale problem jak zrobić porównanie 3, 4, 5... opcji jest wciąż nie rozwiązany sad.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.