Help за Selects, pls

2 отговора 146 прегледа
#1

Help за Selects, pls

Значи на въпроса:
пробвам да напиша един по-сложен Select, т.е. този :

SELECT u.* FROM t1 u, t2 rm, t3 r
WHERE (u.u1 = rm.u1 AND rm.r1 = r.r1
AND SUBSTRING(r.r1,1,3) = 'sp_') ORDER BY u.u1

UNION

SELECT u.* FROM t1 u
WHERE NOT EXISTS (SELECT rm1.* FROM t2 rm1 WHERE rm1.u1 = u.u1 )


значи, 1-вия Select съмостоятелно си бачка, но се сетих че трябва да ми вади и други резултати ... т.е. 2-рия ... когато опитвам да пусна само 2-рия, но ми дава грешка някаде около EXISTS-а.

Дайте акъл.


Опаааа ... значи тоwва го пробвам на MySQL v4.0.18

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

Отговор
в отговор на Builder #2

Re: Help за Selects, pls

Ми във втория СЕЛЕКТ имаш вложена заявка (СЕЛЕКТ в СЕЛЕКТ) - това MySQL 4.0.XX не го поддържа. Пробвай да направиш upgrade до 4.1 или си пренапиши заявките.

Успех.

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

Re: малко встрани от темата

Вместо

SUBSTRING(r.r1,1,3) = 'sp_')

използвай

LEFT (r.r1, 3) = 'sp_'

или още по-добре

r.r1 LIKE 'sp\_%'


SUBSTRING() няма да използва индекс докато LEFT и LIKE могат.

salle.online.bg/sig
Отговор