[Mysql] Zapytanie zagnieżdżone

0

Witam,
Mam dwie proste tabele, tab1 i tab2 identyczne o polach id i numer.
I teraz zapytanie zagniezdzone:

select * from tab1 where numer IN (select numer from tab2 where id<5)

Czymy phpmyadmin pod krasnalem 2.6 zwraca blad?
Jakby w ogole zapytania zagniezdzone nie byly brane pod uwage.
Wiecie co jest nie tak?

0

kwestia wersji mysql musi byc przynajmniej 4.1

0

kwestia wersji mysql musi byc przynajmniej 4.1

Faktycznie, przetestowalem wersje 4.0x i dopiero 4.1 na to pozwala.
To teraz pytanie, taki serwer jak Krasnal powinien juz raczej miec wbudowane 4.1 a niestety trzeba samemu to wrzucac.

//a błąd w pierwszym poście to nie łaska poprawić? - M

0

Wersja 4.1. jest niestabilna i nie zalecana w stosowaniu dla szerszego uzytku.

0

Wersja 4.1. jest niestabilna i nie zalecana w stosowaniu dla szerszego uzytku.

To w takim wypadku co zrobić, żeby mieć wersję stabilną i obsługę zapytań zagnieżdżonych ?

0

Przeniesc sie na PostgreSQL. Stabilniejsze od MySQL, ma zapytania zagniezdzone i do tego jeszcze jest transakcyjne. No i oczywiscie tez darmowe. :)

0

Przeniesc sie na PostgreSQL. Stabilniejsze od MySQL, ma zapytania zagniezdzone i do tego jeszcze jest transakcyjne. No i oczywiscie tez darmowe. :)

Niestety nie ma takiej opcji, ktos kiedys zapoczatkowal w firmie mysql-a i nie ma szans tego zmienic, bo wiazaloby sie to ze zmiana bazy w 12 oddzialach w Polsce i w ogole odpada. Jaka na razie trzeba sobie radzic na mysql-u.

0

mysql 4.0 obsługuje coś w rodzaju podzapytań, statyczne, tzn. nie będące zapytaniem. rozbijasz sobie zapytanie na dwie części:
select numer from tab2 where id<5
wyciągasz dane i generujesz drugie zapytanie

select * from tab1 where numer IN ($dane_z_pierwszego_zapytania_pooddzielane_przecinkami)

tak poza tym to nie potrzebujesz tu podzapytań:
select * from tab1 where numer IN (select numer from tab2 where id<5) to to samo co
select tab1.* from tab1,tab2 where tab1.numer = tab2.numer and id<5

1 użytkowników online, w tym zalogowanych: 0, gości: 1