ďťż
 
MySQL - skomplikowane zapytanie - pomocy ďťż
 
MySQL - skomplikowane zapytanie - pomocy
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • czterowers.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com