Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie - połączenie dwóch tabel
xradar
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.06.2007
Skąd: Bydgoszcz

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


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.
Go to the top of the page
+Quote Post
kevinsz
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 2
Dołączył: 26.04.2007

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


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... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
xradar
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.06.2007
Skąd: Bydgoszcz

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


Dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Rozwiązałem to przez kilkukrotne zastosowanie JOINa. Działa (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

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: 22.08.2025 - 20:28