Помогите с SQL запросом

voodoo911
На сайте с 11.03.2008
Offline
157
381

Есть запрос

select id,title,link,(select count(*) from goods where subID=tree.id) as g,(select count(*) from tree t2 where t2.parent=tree.id) as p from `tree` where parent=0 order by `order` DESC

Он нормально работает на SQL версии 4.1.22. Перенес сайт а новый хостинг, там стоит SQL 4.0.25 и этот код не работает. Я так понимаю, что используются новые конструкции языка и поэтому код не работает.

Еррор мессидж

Query: select id,title,link,(select count(*) from goods where subID=tree.id) as g,(select count(*) from tree t2 where t2.parent=tree.id) as p from `tree` where parent=0 order by `order` DESC

Error: 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 count(*) from goods where subID=tree.id) as g,(select co...

Помогите исправить код. Уже замахался крутить его.

[Удален]
#1
SELECT id,title,link,(SELECT count(*) FROM goods WHERE subID=tree.id) AS g,(SELECT count(*) FROM tree t2 WHERE t2.parent=tree.id) AS p FROM `tree` WHERE parent=0 ORDER BY `order` DESC

А разве здесь не через LEFT JOIN нужно делать?

mixa
На сайте с 06.11.2006
Offline
36
#2

мне тоже кажется, что через JOIN нужно было писать.

D
На сайте с 16.02.2008
Offline
11
#3

В версиях MYSQL до 4.1 отсутствует поддержка вложенных запросов. Так что либо изменяйте через join'ы, либо меняйте хостера .

doggystyle добавил 10.10.2008 в 00:56

GROUP BY в помощь ;)

Dreammaker
На сайте с 20.04.2006
Offline
569
#4
voodoo911:
Помогите исправить код. Уже замахался крутить его.

Самый простой способ вынести подсчёт количеств в отдельные запросы. Ради красоты и идеалов программирования это можно постараться оформить в один запрос, но .. читаем предложение с начала :)

voodoo911
На сайте с 11.03.2008
Offline
157
#5

Всем данке шон! Разобрался.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий