MySQL - skomplikowane zapytanie - pomocy
erg - 17-06-2007 00:16
MySQL - skomplikowane zapytanie - pomocy
Witam,
Przedstawi? mój problem. Mam dwie tabelki `produkty` i `kategorie`. W tabeli `kategorie` s? dwie kolumny - ID (id produktu) oraz nazwa (nazwa kategorii do której nale?y).
Niektóre produkty nale?? do dwóch i wi?cej kategorii
M?cz? si? ca?y dzie? nad sformu?owaniem zapytania, które wybra?oby produkty, które nale?? do dwóch i wi?cej kategorii. W przypadku, gdy produkty nale?a?yby tylko do jednej wystarczy?oby :
SELECT * FROM produkty,kategorie WHERE produkty.ID = kategorie.ID AND kategorie.nazwa = "jakas_kategoria";
albo
SELECT * FROM produkty INNER JOIN kategorie ON produkty.VID = kategorie.VID WHERE kategorie.nazwa = "jakas_kategoria";
Nie potrafi? poradzi? sobie jednak z sytuacj?, gdy produkt nale?y do wi?kszej ilo?ci kategorii.
Zapytanie : SELECT * FROM produkty,kategorie WHERE produkty.ID = kategorie.ID AND kategorie.nazwa = "jakas_kategoria" AND kategorie.nazwa = "jakas_kategoria_druga";
Nie zwraca ?adnych wierszy.
My?la?em nad tym, ?eby dla dwóch kategorii jeszcze raz przefiltrowa? wynik zapytania dla jednej kategorii, jednak nie za bardzo radz? sobie ze sk?adni?.
Czy kto? by?by tak ?yczliwy i pomóg?by rozwi?za? mi ten problem?
Z góry dzi?ki za pomoc Pozdrawiam erg
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 17-06-2007 00:16
erg wrote: > Witam, > > Przedstawi? mój problem. Mam dwie tabelki `produkty` i `kategorie`. > W tabeli `kategorie` s? dwie kolumny - ID (id produktu) oraz nazwa > (nazwa kategorii do której nale?y). > > Niektóre produkty nale?? do dwóch i wi?cej kategorii > > M?cz? si? ca?y dzie? nad sformu?owaniem zapytania, które wybra?oby > produkty, które nale?? do dwóch i wi?cej kategorii. > W przypadku, gdy produkty nale?a?yby tylko do jednej wystarczy?oby : > > SELECT * FROM produkty,kategorie WHERE produkty.ID = kategorie.ID AND > kategorie.nazwa = "jakas_kategoria"; > > albo > > SELECT * FROM produkty INNER JOIN kategorie ON produkty.VID = > kategorie.VID WHERE kategorie.nazwa = "jakas_kategoria"; > > Nie potrafi? poradzi? sobie jednak z sytuacj?, gdy produkt nale?y do > wi?kszej ilo?ci kategorii. > > Zapytanie : > SELECT * FROM produkty,kategorie WHERE produkty.ID = kategorie.ID AND > kategorie.nazwa = "jakas_kategoria" AND kategorie.nazwa = > "jakas_kategoria_druga"; > > Nie zwraca ?adnych wierszy. > > My?la?em nad tym, ?eby dla dwóch kategorii jeszcze raz przefiltrowa? > wynik zapytania dla jednej kategorii, jednak nie za bardzo radz? sobie > ze sk?adni?. > > Czy kto? by?by tak ?yczliwy i pomóg?by rozwi?za? mi ten problem?
OR, a nie AND! A jak musz? nale?e? do conajmniej dwóch, to HAVING count(*) >= 2
-- P.M.
erg - 17-06-2007 00:16
> > OR, a nie AND! > A jak musz? nale?e? do conajmniej dwóch, to HAVING count(*) >= 2 >
Chodzi mi o to, ?eby klient wraz z dok?adaniem kolejnego kryterium otrzymywa? coraz bardziej szczegó?owy produkt.
Gdy stosuj? OR to wy?wietla mi zbiór wszystkich produktów, które zawieraj? si? w zadanych kategoriach.
Czy HAVING count(*) >= il_kategorii rozwi??e spraw? ?
Pozdrawiam RK
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.plczterowers.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|