ďťż
 
Problem z zapytaniem MySQL ďťż
 
Problem z zapytaniem MySQL
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

Problem z zapytaniem MySQL



maxio99@gmail.com - 13-11-2006 00:17
Problem z zapytaniem MySQL
  Jak sie domyslacie ... mam problem :)

Z zapytaniem do MySQLa ...

Chodzi o wyszukiwarke i ogolnie rzecz biorac o relacje wiele do wielu .
Sprawa wyglada tak .

Jest tabela produktow (mz_elementy_2) jest tabela
cech(mz_klasyfikacje_2) dla danego produktu .

Element moze miec wiele cech , cechy moga wystepowac w wielu elementach
..

Struktura :

mz_elementy_2 :
id_element
nazwa_element

mz_klasyfikacje_2:
id_klasyfikacje
nazwa_klas

i tabela posrednia:

klasyfikacje_elementy
id_klasyfikacje
id_element

chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
id_klasyfikacje = 8 i id_klasyfikacje = 4) .

Gdzies sie zaciolem i nie moge drgnac juz chwile ... bede bardzo
wdzieczny :) ...





Filip Rembiałkowski - 13-11-2006 00:17

  maxio99@gmail.com napisał(a):
> Jak sie domyslacie ... mam problem :)
>
> Z zapytaniem do MySQLa ...
>
> Chodzi o wyszukiwarke i ogolnie rzecz biorac o relacje wiele do wielu .
> Sprawa wyglada tak .
>
> Jest tabela produktow (mz_elementy_2) jest tabela
> cech(mz_klasyfikacje_2) dla danego produktu .
>
> Element moze miec wiele cech , cechy moga wystepowac w wielu elementach
> .
>
> Struktura :
>
> mz_elementy_2 :
> id_element
> nazwa_element
>
> mz_klasyfikacje_2:
> id_klasyfikacje
> nazwa_klas
>
> i tabela posrednia:
>
> klasyfikacje_elementy
> id_klasyfikacje
> id_element
>
> chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
> produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
> produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
> id_klasyfikacje = 8 i id_klasyfikacje = 4) .

select ... FROM ... WHERE ... IN (...)




Paweł Matejski - 13-11-2006 00:17

  maxio99@gmail.com wrote:
> Jak sie domyslacie ... mam problem :)
>
> Z zapytaniem do MySQLa ...
>
> Chodzi o wyszukiwarke i ogolnie rzecz biorac o relacje wiele do wielu .
> Sprawa wyglada tak .
>
> Jest tabela produktow (mz_elementy_2) jest tabela
> cech(mz_klasyfikacje_2) dla danego produktu .
>
> Element moze miec wiele cech , cechy moga wystepowac w wielu elementach
> .
>
> Struktura :
>
> mz_elementy_2 :
> id_element
> nazwa_element
>
> mz_klasyfikacje_2:
> id_klasyfikacje
> nazwa_klas
>
> i tabela posrednia:
>
> klasyfikacje_elementy
> id_klasyfikacje
> id_element
>
> chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
> produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
> produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
> id_klasyfikacje = 8 i id_klasyfikacje = 4) .
>
> Gdzies sie zaciolem i nie moge drgnac juz chwile ... bede bardzo
> wdzieczny :) ...

Zliczaj ilość klasyfikacji pasujące do warunku. Wiele razy tu pisałem, jak się
takie problemy rozwiązuje.

--
P.M.




maxio99@gmail.com - 13-11-2006 00:17

 
Filip Rembiałkowski napisał(a):
> maxio99@gmail.com napisał(a):
> > Jak sie domyslacie ... mam problem :)
> >
> > Z zapytaniem do MySQLa ...
> >
> > Chodzi o wyszukiwarke i ogolnie rzecz biorac o relacje wiele do wielu .
> > Sprawa wyglada tak .
> >
> > Jest tabela produktow (mz_elementy_2) jest tabela
> > cech(mz_klasyfikacje_2) dla danego produktu .
> >
> > Element moze miec wiele cech , cechy moga wystepowac w wielu elementach
> > .
> >
> > Struktura :
> >
> > mz_elementy_2 :
> > id_element
> > nazwa_element
> >
> > mz_klasyfikacje_2:
> > id_klasyfikacje
> > nazwa_klas
> >
> > i tabela posrednia:
> >
> > klasyfikacje_elementy
> > id_klasyfikacje
> > id_element
> >
> > chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
> > produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
> > produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
> > id_klasyfikacje = 8 i id_klasyfikacje = 4) .
>
> select ... FROM ... WHERE ... IN (...)

Jasne ;) ....

Nie to nie tedy droga twoja droga przy zwiekszaniu warunkow bedzie mi
zwiekszal ilosc wyswietlonych elementow .
TO bedzie dzialalo jakbym napisal OR OR OR .... a tu ma byc AND AND AND
tylko ze tak nie da rady :)





maxio99@gmail.com - 13-11-2006 00:17

 
Paweł Matejski napisał(a):
> maxio99@gmail.com wrote:
> > Jak sie domyslacie ... mam problem :)
> >
> > Z zapytaniem do MySQLa ...
> >
> > Chodzi o wyszukiwarke i ogolnie rzecz biorac o relacje wiele do wielu .
> > Sprawa wyglada tak .
> >
> > Jest tabela produktow (mz_elementy_2) jest tabela
> > cech(mz_klasyfikacje_2) dla danego produktu .
> >
> > Element moze miec wiele cech , cechy moga wystepowac w wielu elementach
> > .
> >
> > Struktura :
> >
> > mz_elementy_2 :
> > id_element
> > nazwa_element
> >
> > mz_klasyfikacje_2:
> > id_klasyfikacje
> > nazwa_klas
> >
> > i tabela posrednia:
> >
> > klasyfikacje_elementy
> > id_klasyfikacje
> > id_element
> >
> > chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
> > produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
> > produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
> > id_klasyfikacje = 8 i id_klasyfikacje = 4) .
> >
> > Gdzies sie zaciolem i nie moge drgnac juz chwile ... bede bardzo
> > wdzieczny :) ...
>
> Zliczaj ilość klasyfikacji pasujące do warunku. Wiele razy tu pisałem, jak się
> takie problemy rozwiązuje.
>
> --
> P.M.

Jakbyś mógł podac linka albo najlepiek walnac szybko taki schemat
zapytania ... tylko nie w stylu IN lub OR (tak jak kolega wyzej bo to
nie tedy droga) czy jak ktos mi gdzies podal ze wystarczy spiac tabelki
JOINem bez podawania warunkow :)




Paweł Matejski - 13-11-2006 00:17

  maxio99@gmail.com wrote:
> Paweł Matejski napisał(a):
>> maxio99@gmail.com wrote:
>>>
>>> chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
>>> produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
>>> produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
>>> id_klasyfikacje = 8 i id_klasyfikacje = 4) .
>>>
>>> Gdzies sie zaciolem i nie moge drgnac juz chwile ... bede bardzo
>>> wdzieczny :) ...
>> Zliczaj ilość klasyfikacji pasujące do warunku. Wiele razy tu pisałem, jak się
>> takie problemy rozwiązuje.
>
> Jakbyś mógł podac linka albo najlepiek walnac szybko taki schemat
> zapytania ... tylko nie w stylu IN lub OR (tak jak kolega wyzej bo to
> nie tedy droga) czy jak ktos mi gdzies podal ze wystarczy spiac tabelki
> JOINem bez podawania warunkow :)

Jak to mówią "open your maind". Kolega dobrze Ci radzi, teraz doprowadź wynik do
strawnej postaci.

--
P.M.




maxio99@gmail.com - 13-11-2006 00:17

 
Paweł Matejski napisał(a):
> maxio99@gmail.com wrote:
> > Paweł Matejski napisał(a):
> >> maxio99@gmail.com wrote:
> >>>
> >>> chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
> >>> produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
> >>> produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
> >>> id_klasyfikacje = 8 i id_klasyfikacje = 4) .
> >>>
> >>> Gdzies sie zaciolem i nie moge drgnac juz chwile ... bede bardzo
> >>> wdzieczny :) ...
> >> Zliczaj ilość klasyfikacji pasujące do warunku. Wiele razy tu pisałem, jak się
> >> takie problemy rozwiązuje.
> >
> > Jakbyś mógł podac linka albo najlepiek walnac szybko taki schemat
> > zapytania ... tylko nie w stylu IN lub OR (tak jak kolega wyzej bo to
> > nie tedy droga) czy jak ktos mi gdzies podal ze wystarczy spiac tabelki
> > JOINem bez podawania warunkow :)
>
> Jak to mówią "open your maind". Kolega dobrze Ci radzi, teraz doprowadź wynik do
> strawnej postaci.
>
> --
> P.M.

Kolega źle mi radzi . Chyba nawet nie przeczytal o co mi chodzi :) ...

To ma dzialac jak klasyczna wyszukiwarka . Czym wiecej podanych opcji
tym mniej wynikow wypluwa ...

A w przypadku IN czy OR (i nie mów mi o tym że musze spiac te tabele
bo jestem tego świadom ale tu nie o to chodzi) to dziala dokladnie
odwrotnie. Bo czym zwieksze ilosc opcji do wyboru (wprowadzajac nowe
pozycje do klauzli IN czy nowe OR) to bede uzyskiwal wiecej wynikow a
nie mniej . No to chyba dla kazdego kto chodz troche zna sie na bazach
jest oczywiste ...

OPEN my MAIND :) Ja go od wczoraj mam najszerzej otwarty jak sie da .
TO z IN czy OR nie dziala AND jak sie domyslasz nie ma prawa dzialac .
IN czy OR zadziala dokladnie w odwrotny sposob do jakiego ja potrzebuje
....
a AND nie moge uzyc ( :) )... myslalem zeby dzialac na aliasach ...
poprostu zeby
operowac na kilku tabelach laczacych naraz (kl_el2,kl_el3 ...) i wtedy
porownywac ze soba te wyniki ale to bedzie jakies takie nie eleganckie
.... pozatym strach sie bac bo moge miec kilkadziesiat klasyfikacji wiec
jak moje zapytanie bedzie wygladalo :\




Paweł Matejski - 13-11-2006 00:18

  maxio99@gmail.com wrote:
> Paweł Matejski napisał(a):
>> maxio99@gmail.com wrote:
>>> Paweł Matejski napisał(a):
>>>> maxio99@gmail.com wrote:
>>>>> chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
>>>>> produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
>>>>> produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
>>>>> id_klasyfikacje = 8 i id_klasyfikacje = 4) .
>>>>>
>>>>> Gdzies sie zaciolem i nie moge drgnac juz chwile ... bede bardzo
>>>>> wdzieczny :) ...
>>>> Zliczaj ilość klasyfikacji pasujące do warunku. Wiele razy tu pisałem, jak się
>>>> takie problemy rozwiązuje.
>>> Jakbyś mógł podac linka albo najlepiek walnac szybko taki schemat
>>> zapytania ... tylko nie w stylu IN lub OR (tak jak kolega wyzej bo to
>>> nie tedy droga) czy jak ktos mi gdzies podal ze wystarczy spiac tabelki
>>> JOINem bez podawania warunkow :)
>> Jak to mówią "open your maind". Kolega dobrze Ci radzi, teraz doprowadź wynik do
>> strawnej postaci.
>>
>> --
>> P.M.
>
> Kolega źle mi radzi . Chyba nawet nie przeczytal o co mi chodzi :) ...
>
> To ma dzialac jak klasyczna wyszukiwarka . Czym wiecej podanych opcji
> tym mniej wynikow wypluwa ...
>
> A w przypadku IN czy OR (i nie mów mi o tym że musze spiac te tabele
> bo jestem tego świadom ale tu nie o to chodzi) to dziala dokladnie
> odwrotnie. Bo czym zwieksze ilosc opcji do wyboru (wprowadzajac nowe
> pozycje do klauzli IN czy nowe OR) to bede uzyskiwal wiecej wynikow a
> nie mniej . No to chyba dla kazdego kto chodz troche zna sie na bazach
> jest oczywiste ...
>
> OPEN my MAIND :) Ja go od wczoraj mam najszerzej otwarty jak sie da .
> TO z IN czy OR nie dziala AND jak sie domyslasz nie ma prawa dzialac .
> IN czy OR zadziala dokladnie w odwrotny sposob do jakiego ja potrzebuje

Ten akapit wcześniej to właśnie dowód na to, że myślisz schematami, mimo, że
masz malutkie doświadczenie w SQL'u.

select t.kol2,t.kol2,....
from tabela t
where id_cechy in (id1,id2,id3)
group by t.kol2,t.kol2,....
having count(*) = 3

--
P.M.




Filip Rembiałkowski - 13-11-2006 00:43

  maxio99@gmail.com napisał(a):

> Kolega źle mi radzi . Chyba nawet nie przeczytal o co mi chodzi :) ...
>
przeczytałem to co napisałeś. taki mam zwyczaj żeby czytać zanim odpowiem.

cytuję:

> Struktura :
>
> mz_elementy_2 :
> id_element
> nazwa_element
>
> mz_klasyfikacje_2:
> id_klasyfikacje
> nazwa_klas
>
> i tabela posrednia:
>
> klasyfikacje_elementy
> id_klasyfikacje
> id_element
>
> chodzi o zapytanie wyszukujace . Zakladamy ze chce wyszukac wszystkie
> produkty ktore posiadaja okreslone cechy (klasyfikacje) . Czyli
> produkty ktore maja takie klasyfikacje (id_klasyfikacje = 7 ,
> id_klasyfikacje = 8 i id_klasyfikacje = 4) .

to da się zrobić dokładnie tak jak napisałem. podałem wersję szkicową żeby
skłonić cie do myslenia ale widze że bez skutku niestety

select nazwa_element
FROM mz_elementy_2
WHERE id_element IN (
SELECT id_element
FROM klasyfikacje_elementy
WHERE id_klasyfikacje IN (7, 8, 4)
)

być może źle opisałeś problem, ale nie każ nam tu zgadywać jak działa twoja
wyszukiwarka!

F.
  • 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
  • latwa-kasiora.pev.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