ďťż
 
[MySQL] Bledne subquery ďťż
 
[MySQL] Bledne subquery
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] Bledne subquery



Szymon Zdziabek - 11-11-2006 00:52
[MySQL] Bledne subquery
  Witam serdecznie,
Rzuccie prosze okiem na ponizsze zapytanie:
SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (SELECT matkaid FROM
`dzieci` WHERE (osobaid = '<jakasliczba>') LIMIT 1);
i uswiadomcie mnie co w nim jest niepoprawnego... Przez pol godziny nie
znalazlem bledu, ale moze juz w oczach mi sie roi od literek i cyferek :)
Dodam, ze oba zapytania odrebnie dzialaja poprawnie, czyli np:
SELECT matkaid FROM `dzieci` WHERE (osobaid = '5') LIMIT 1;
oraz:
SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (5);
Serwer bazodanowy oczywiscie w wersji obslugujacej subqueries.

--
Pozdrawiam,
Szymon Zdziabek





J.L.P - 11-11-2006 00:52

  > Rzuccie prosze okiem na ponizsze zapytanie:
> SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (SELECT matkaid FROM
> `dzieci` WHERE (osobaid = '<jakasliczba>') LIMIT 1);
> i uswiadomcie mnie co w nim jest niepoprawnego... Przez pol godziny nie
> znalazlem bledu, ale moze juz w oczach mi sie roi od literek i cyferek :)
> Dodam, ze oba zapytania odrebnie dzialaja poprawnie, czyli np:
> SELECT matkaid FROM `dzieci` WHERE (osobaid = '5') LIMIT 1;
> oraz:
> SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (5);
> Serwer bazodanowy oczywiscie w wersji obslugujacej subqueries.

nie powinno tam byc jeszcze order by id? pytam bo cos mi swita na koncu
umyslu ze mialem kiedys podobny problem
;)




Krzysztof Wiśniewski - 11-11-2006 00:52

 
Użytkownik "Szymon Zdziabek" <simon83@poczta_wytnij.onet.pl> napisał w
wiadomości news:eef60o$niq$1@atlantis.news.tpi.pl...
| Witam serdecznie,
| Rzuccie prosze okiem na ponizsze zapytanie:
| SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (SELECT matkaid FROM
| `dzieci` WHERE (osobaid = '<jakasliczba>') LIMIT 1);
| i uswiadomcie mnie co w nim jest niepoprawnego... Przez pol godziny nie
| znalazlem bledu, ale moze juz w oczach mi sie roi od literek i cyferek :)
| Dodam, ze oba zapytania odrebnie dzialaja poprawnie, czyli np:
| SELECT matkaid FROM `dzieci` WHERE (osobaid = '5') LIMIT 1;
| oraz:
| SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (5);
| Serwer bazodanowy oczywiscie w wersji obslugujacej subqueries.
|

Nie napisałeś, co Ci nie działa w tym zapytaniu, ale wydaje mi się, że ten
sam efekt uzyskasz w następujący sposób:

SELECT
imie,
nazwisko,
id
FROM `osoby` o
INNER JOIN `dzieci` d ON d.matkaid = o.id
WHERE d.osobaid = '<jakasliczba>';

Pozdrawiam,
Krzysiek




Przemyslaw Popielarski - 11-11-2006 00:52

  Szymon Zdziabek wrote:
> SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (SELECT matkaid
> FROM `dzieci` WHERE (osobaid = '<jakasliczba>') LIMIT 1);
> i uswiadomcie mnie co w nim jest niepoprawnego...

Podaj komunikat bledu, bedzie latwiej.

--
../ premax
../ premax@hot.pl
../ koniec i bomba, a kto czytal ten traba. w.g.





Szymon Zdziabek - 11-11-2006 00:54

  > Podaj komunikat bledu, bedzie latwiej.
Zwraca taki blad, jakby nie bylo zadnych pobranych danych (pusty wynik
SELECT). Odrebnie wykonane zwracaja poprawne wartosci.

--
Pozdrawiam,
Szymon Zdziabek




Szymon Zdziabek - 11-11-2006 00:54

  > nie powinno tam byc jeszcze order by id?
Sortowanie w przypadku checi pobrania tylko jednego wiersza danych (LIMIT 1)
nie jest mi potrzebne, wiec nie sadze, ale oczywiscie sprawdzic warto :)

--
Pozdrawiam,
Szymon Zdziabek




Przemyslaw Popielarski - 11-11-2006 00:54

  Szymon Zdziabek wrote:
> SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (SELECT matkaid
> FROM `dzieci` WHERE (osobaid = '<jakasliczba>') LIMIT 1);
> i uswiadomcie mnie co w nim jest niepoprawnego... Przez pol godziny
> nie znalazlem bledu, ale moze juz w oczach mi sie roi od literek i
> cyferek :) Dodam, ze oba zapytania odrebnie dzialaja poprawnie, czyli
> np: SELECT matkaid FROM `dzieci` WHERE (osobaid = '5') LIMIT 1;
> oraz:
> SELECT imie, nazwisko, id FROM `osoby` WHERE id IN (5);
> Serwer bazodanowy oczywiscie w wersji obslugujacej subqueries.

Zeby Ci Twoje podzapytanie zwrocilo wynik, to musisz miec wiersz z matkaid=5
w tabeli dzieci. Masz? Bo nie wynika to z Twojej wypowiedzi.

--
../ premax
../ premax@hot.pl
../ koniec i bomba, a kto czytal ten traba. w.g.




Szymon Zdziabek - 11-11-2006 00:55

  > Zeby Ci Twoje podzapytanie zwrocilo wynik, to musisz miec wiersz z
> matkaid=5 w tabeli dzieci. Masz?
Tak, dane rowniez sa poprawne. Uruchamiam skrypt najpierw ze srodkowym
zapytaniem, na ekranie mam ladny wynik (id osoby), zmienam szybko zapytanie
na glowne podajac w nawiasie klauzuli WHERE zwrocony wczesniej wynik zamiast
wewnetrznego zapytania i po przeladowaniu strony uzyskuje rowniez poprawny,
juz ostateczny, wynik. Tak wiec dane sa poprawne i oba zapytania rowniez.
Nie chca dzialac ze soba...

--
Pozdrawiam,
Szymon Zdziabek




Szymon Zdziabek - 11-11-2006 00:55

  Dodam, ze inne, bardziej zlozone subquery na stronie ktora tworze dzialaja
poprawnie.

--
Pozdrawiam,
Szymon Zdziabek
  • 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 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lisinski.htw.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