ďťż
 
[MySQL] Dostaję podwójny wynik wyszukiwania. Co jest ? ďťż
 
[MySQL] Dostaję podwójny wynik wyszukiwania. Co jest ?
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] 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.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
  • misida.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