На русском форуме сфинкса вопрос две недели провисел без ответа. Попробую спросить здесь.
Есть два запроса:
SELECT *, (10*weight()) AS qweight FROM elverIndex WHERE MATCH('ZONESPAN:(h1,h2)
ТоЧтоЯИщу') LIMIT 0,1000
и
SELECT *, (5*weight()) AS qweight FROM elverIndex WHERE MATCH('ZONESPAN:(h3,h4)
ТоЧтоЯИщу') LIMIT 0,1000
По отдельности они корректно отрабатывают. Мне нужно в одном запросе объединить их
результат с группировкой по полю id_attr, суммированием qweight и сортировкой по убыванию
суммарного веса.
Я делаю:
SELECT *, tweight AS SUM(`qweight`) FROM (SELECT *, (10*weight()) AS qweight FROM
elverIndex WHERE MATCH('ZONESPAN:(h1,h2) ТоЧтоЯИщу') LIMIT 0,1000 UNION SELECT *,
(5*weight()) AS qweight FROM elverIndex WHERE MATCH('ZONESPAN:(h3,h4) ТоЧтоЯИщу') LIMIT
0,1000) t GROUP BY `id_attr` ORDER BY `tweight` DESC LIMIT 0,1000;
На выходе получаю
ERROR 1064 (42000): sphinxql: syntax error, unexpected '(', expecting FROM or ',' near
'(`qweight`) FROM (SELECT *, (10*weight()).......
Вопрос что я делаю не так, вобщем-то не стоит(очевидный ответ - все). Стоит вопрос как
сделать правильно или хотябы где почитать о том как сделать правильно?