[MySQL] Dostaję podwójny wynik wyszukiwania. Co jest ?
linker - 25-05-2006 00:49
[MySQL] Dostaję podwójny wynik wyszukiwania. Co jest ?
Witam Mam taki problem. Wysyłam zapytanie do dwóch tabel, w klauzuli where podaję pola w tabelach poprzedzone nazwą danej tabeli i wszystk jest ok, baza wyszukuje rekordy które spełniają moje kryteria ale podaje mi dwa wyniki jeden pod drugim. Na przykład jest w tabeli tylko jeden element o nazwie 'czesc1' i spełnia kryteria wyszukiwania a zapytanie zwraca: część1 część1
Co jest nie tak ? pozdr. linker
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 25-05-2006 00:49
linker wrote: > Co jest nie tak ? Nie uważasz, że byłoby prościej, gdybyś podał treść zapytania, zamiast o nim opowiadać?
-- Michał Kuratczyk
linker - 25-05-2006 00:49
Treść zapytania:
$znajdz_czesci = mysql_query("select * from czesci, czesci_komp where czesci_komp.id_maszyny = '$id_maszyny' and czesci.lista1 like '%$lista1%' and czesci.lista2 like '%$lista2%' ;");
Jest jeden wiersz spełniający to kryterium i zwraca go w wyniku x2.
pozdr. linker
Użytkownik "Michał Kuratczyk" <kura@lj.pl> napisał w wiadomości news:e515pn$bui$1@abg.com.pl... > linker wrote: > > Co jest nie tak ? > Nie uważasz, że byłoby prościej, gdybyś podał treść zapytania, > zamiast o nim opowiadać? > > -- > Michał Kuratczyk
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 25-05-2006 00:49
linker wrote: > $znajdz_czesci = mysql_query("select * from czesci, czesci_komp where > czesci_komp.id_maszyny = '$id_maszyny' and czesci.lista1 like '%$lista1%' > and czesci.lista2 like '%$lista2%' ;"); No i tak jak można się było spodziewać - nie podałeś warunku złączenia tabeli CZESCI z tabela CZESCI_KOMP, a zatem dostałeś iloczyn kartezjański tych tabel.
-- Michał Kuratczyk
linker - 25-05-2006 00:49
Skopałem coś w zapytaniu bo jak dodam ręcznie do tabeli kolejny rekord który ma spełniać kryterium, to zapytanie wyszukuje te wpisy i wynik jest zwracany tyle razy ile jest pól w tabeli. Jeśli są trzy pola w tabeli (a tylko dwa spełniają kryteria) to zapytanie wywala wynik x3.
linker
Użytkownik "linker" <lukaszjenek@gmail.com> napisał w wiadomości news:e515v5$shg$1@inews.gazeta.pl... > Treść zapytania: > > $znajdz_czesci = mysql_query("select * from czesci, czesci_komp where > czesci_komp.id_maszyny = '$id_maszyny' and czesci.lista1 like '%$lista1%' > and czesci.lista2 like '%$lista2%' ;"); > > Jest jeden wiersz spełniający to kryterium i zwraca go w wyniku x2. > > pozdr. > linker > > Użytkownik "Michał Kuratczyk" <kura@lj.pl> napisał w wiadomości > news:e515pn$bui$1@abg.com.pl... > > linker wrote: > > > Co jest nie tak ? > > Nie uważasz, że byłoby prościej, gdybyś podał treść zapytania, > > zamiast o nim opowiadać? > > > > -- > > Michał Kuratczyk > >
linker - 25-05-2006 00:50
A moge prosić o jakąś sugestię jakie łączenie zastosować w tym konkretnym zapytaniu? Kombinuję z warunkami łączeń ale mi sie wysypuje...
Użytkownik "Michał Kuratczyk" <kura@lj.pl> napisał w wiadomości news:e51631$bui$2@abg.com.pl... > linker wrote: > > $znajdz_czesci = mysql_query("select * from czesci, czesci_komp where > > czesci_komp.id_maszyny = '$id_maszyny' and czesci.lista1 like '%$lista1%' > > and czesci.lista2 like '%$lista2%' ;"); > No i tak jak można się było spodziewać - nie podałeś warunku złączenia > tabeli CZESCI z tabela CZESCI_KOMP, a zatem dostałeś iloczyn kartezjański > tych tabel. > > -- > Michał Kuratczyk
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 25-05-2006 00:50
linker wrote: > A moge prosić o jakąś sugestię jakie łączenie zastosować w tym konkretnym > zapytaniu? Kombinuję z warunkami łączeń ale mi sie wysypuje... Gdbyś tak podał definicje tych tabel... Więc zróbmy tak jak powinno to być od początku - podajesz definicje tabel, tłumaczysz co chcesz osiągnąć swoim zapytaniem i podajesz zapytanie (to już mamy). Wtedy można będzie Ci pomóc.
>> > $znajdz_czesci = mysql_query("select * from czesci, czesci_komp where >> > czesci_komp.id_maszyny = '$id_maszyny' and czesci.lista1 >> > like '%$lista1%' and czesci.lista2 like '%$lista2%' ;"); Niestety na podstawie tego zapytania trudno się czegoś domyślić. Obawiam się, że cały model danych masz cokolwiek dziwny - już samo słowo "lista" sugeruje, że coś tam jest nie tak.
-- Michał Kuratczyk
=?iso-8859-2?Q?Andrzej_Str=F3=BFy=F1ski?= - 25-05-2006 00:50
=?iso-8859-2?Q?Re:_=5BMySQL=5D_Dostaj=EA_podw=F3jny_wynik_wys zukiwania._C?==?iso-8859-2?Q?o_jest_=3F?= Użytkownik "linker" napisał w wiadomości: >A moge prosić o jakąś sugestię jakie łączenie zastosować w tym konkretnym > zapytaniu? > Kombinuję z warunkami łączeń ale mi sie wysypuje...
zakładając, że obie tabele mają jakiś wspólny element, może to być tak: where czesci_komp.id_czesci=czesci.id_czesci
Pozdrawiam A.S.
PS Gdybyś jeszcze pisał POD postem :)
linker - 25-05-2006 00:50
Użytkownik "Andrzej Stróżyński" <astrozynski@poczta_dot_onet.pl> napisał w wiadomości news:e51e0u$9u7$1@atlantis.news.tpi.pl... > > Użytkownik "linker" napisał w wiadomości: > >A moge prosić o jakąś sugestię jakie łączenie zastosować w tym konkretnym > > zapytaniu? > > Kombinuję z warunkami łączeń ale mi sie wysypuje... > > zakładając, że obie tabele mają jakiś wspólny element, może to być tak: > where czesci_komp.id_czesci=czesci.id_czesci > > Pozdrawiam > A.S. > > PS > Gdybyś jeszcze pisał POD postem :) > >
Dzięki AS. Zadziałało. pozdr. linker
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.plmisida.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 |
|