Задавайте вопросы, мы ответим
Вы не зашли.
Есть 3 таблицы.
Отредактированно Mouse (10.09.2009 15:35:10)
Неактивен
Одним запросом эту выборку через JOIN сделать нельзя (т.к. JOIN подразумевает
произведение количества строк в таблице). Попробуйте через UNION:
SELECT * FROM Site JOIN Log_site WHERE ...
UNION
SELECT * FROM Site JOIN Log_site_all WHERE ...
Неактивен
Пусть в таблице `Log_site` соответствуют x записей строке из таблицы `Site`, а в таблице `Log_site_all` - y. Тогда в результате первого объединения выполучите x строк, а в результате второго x*y строк. Потом происходит группировка и считается сумма.
А вам нужно посчитать сумму от x строк из `Log_site` и от y из `Log_site_all`.
Неактивен
paulus написал:
Попробуйте через UNION:
Видимо туплю с просонья, но чем поможет UNION в данном случае не понял. Я подразумевал использовать подзапросы в части FROM. Двойное объединение по одной строке даст одну строку на выходе. Хотя запрос, наверное, будет тормозной.
Неактивен
Запрос сам по себе странный по смыслу; скорее всего, получение его результата
повергнет автора в ужас и заставит пересмотреть логику
Неактивен
Спасибо за советы. Пришлось разбить на 2 разных запроса.
Неактивен