|
|
|
| Как сделать чтобы результаты одного запроса передавались в другой через переменную?
Вот так не работает:
SELECT @wf:=REPLACE(GROUP_CONCAT(k), ',', "','")
FROM words_initials
WHERE words_initials.i IN('открытый')
GROUP BY i
;
SELECT `pz_words`.`word`, count(`pz_words`.`word`) AS times, @wf
FROM `pz_words` WHERE
`pz_words`.`word` IN('@wf')
GROUP BY `pz_words`.`word`
;
|
А двухтабличный запрос у меня почему-то слишком долго выполняется. | |
|
|
|
|
|
|
|
для: Eugene77
(08.11.2009 в 17:52)
| | Наверное, стоит разобраться, почему 2-х табличный долго выполняется 8) | |
|
|
|
|
|
|
|
для: Fractured#
(09.11.2009 в 00:40)
| | >Наверное, стоит разобраться, почему 2-х табличный долго выполняется 8)
В предыдущей моей теме Трианон уже дал мне ссылки, читая которые можно разобраться, но я , видно, не столь умён...
Предположительно, проблема в том, что MySQL берёт по одной строке из подзапроса, выясняет с ней, потом только обращается к следующей. Так получается многократное сканирование одной из таблиц.
Поэтому рациональней выходит разбить на два однотабичных запроса.
На несколько порядков быстрей работает.
Подскажите, пожалуйста, правильный синтаксис для подстановки строковой переменной в конструкцию IN(@VAR)! | |
|
|
|
|
|
|
|
для: Eugene77
(08.11.2009 в 17:52)
| | Интересно, что даже в книге у Хеопса не описано способа подставить во второй запрос строку собранную при помощи CONCAT ! | |
|
|
|