Грешен SQL за MySQL?

4 отговора 0 прегледа
#1

Грешен SQL за MySQL?

MySQL ver. 4.0.18 ми дава грешка ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select MAX(DATE_TIME_ from OLP where VID_VAL_ = 'BGN'))

при следния SQL:
select * from tbl1 where DATE_TIME_ = select MAX(DATE_TIME_) from tbl;

DATE_TIME_ e дефинирано като varchar(14) и съдържа YYYYMMDDHHMMSS - година,месец, ден, час, мин, сек

Ако може някоя добра душа да каже защо?


... for a brief moment it seemed that rock 'n roll would inherit the earth.
Отговор
в отговор на Beco_ #2

Re: Грешен SQL за MySQL?

Sub-select-ът трябва да е в скоби.

cheers,
</wqw>

[линк]

Редактирано от wqw на

Отговор
в отговор на wqw #3

Re: Грешен SQL за MySQL?

Toeст,
select * from tbl1 where DATE_TIME_ = (select MAX(DATE_TIME_) from tbl);
Ами пак не минава. Дава същата грешка. Намерих подобни примери в нета, да имат скоби по горния начин. Вече се чудя дали този select не минава заради версията на MySQL. Вярно, мога да го разбия на два селекта
- String var1 = select MAX(DATE_TIME_) from tbl;
- Select * from tbl1 where DATE_TIME_ = var1;
и така работи, но е грозно и естетическото ми чувство се бунтува.


... for a brief moment it seemed that rock 'n roll would inherit the earth.
Отговор
в отговор на Beco_ #4

Re: Грешен SQL за MySQL?

Изглежда поне 4.1 ти трябва: Structure Means Subqueries: Nesting SELECTs in MySQL 4.1.

cheers,
</wqw>

[линк]
Отговор
в отговор на wqw #5

Re: Грешен SQL за MySQL?

Мдааа, кофти. Благодаря ти много!


... for a brief moment it seemed that rock 'n roll would inherit the earth.
Отговор