Как правильно организовать Select
Как правильно организовать Select
Здраствуйте, если не трудно подскажите в сл.вопросе. Для примера есть таблица с двумя полями, нужно сделать select который выбрал бы по первому полю все записи а по второму полю только записи по нужному условию, только одним селектом. Меня на этом замкнуло ниче в голову кроме двух селектов не приходит....
ну да. алиасы таблиц и www.ibase.ru/devinfo/joins.htm
WildSery писал(а):и ещё. пользуйся алиасами.
Код: Выделить всё
select
viewdate.fdate,
sum(viewdate.bytesoutput),
0
from
viewdate
left join viewdate on viewdate.namelog='HTTP.log'
group by
viewdate.fdate
Ты начинаешь издеваться.
перепиши в таком виде:
и условие соединения не viewdate.namelog='HTTP.log', кстати, непонятно к какой из таблиц относящийся, а нормальное, по id какому-нибудь (кстати, оно есть?)
перепиши в таком виде:
Код: Выделить всё
... from viewdate v1 left join viewdate v2 ...
статью таки не прочитал. см. ответ WildSery. таблица слева у тебя идет целиком, то есть для нее plan natural. и еще стоит group by. Даже если есть индекс по fdate, все равно переберутся все записи, что долго и нудно.IBExpert просто вешаеться...
Кроме того, необходимость в таком запросе явно намекает на хранение промежуточных агрегатов.
p.s. еще неизвестно, что там во viewdate, если это view.
WildSery писал(а):Ты начинаешь издеваться.
перепиши в таком виде:и условие соединения не viewdate.namelog='HTTP.log', кстати, непонятно к какой из таблиц относящийся, а нормальное, по id какому-нибудь (кстати, оно есть?)Код: Выделить всё
... from viewdate v1 left join viewdate v2 ...
Вешается ....! И не отвечает...
Ой, ну нельзя же так, я щас описаюсь Цитировать пол-ответа перед вопросом и всё же задавать его - это уже полный аут И условие объединения достойно пера Айвазовского SQL - это ведь очень просто на самом деле. Меняем слово Select на Достань, From на Из, Left Join на Объединяя Слева, On на По, Where на Где, Group By на Группируя По, Order By на Сортируя По и читаем полученную фразу и пытаемся прикинуть как сами вместо сервера выполняли бы указание. Тогда сразу становится видно, где от тебя, то бишь сервера, требуют херню.
Да еще читаю..., да это view потому что это был один из вариантов взять из поля datetime только date потому, что InterBase 5.5 и функции выбора только даты не работают.kdv писал(а):статью таки не прочитал. см. ответ WildSery. таблица слева у тебя идет целиком, то есть для нее plan natural. и еще стоит group by. Даже если есть индекс по fdate, все равно переберутся все записи, что долго и нудно.IBExpert просто вешаеться...
Кроме того, необходимость в таком запросе явно намекает на хранение промежуточных агрегатов.
p.s. еще неизвестно, что там во viewdate, если это view.
WildSery писал(а):Оборзел IBExpert! Наедь на него конкретно, пусть ответитVetal писал(а):Вешается ....! И не отвечает...
Укажи хоть структуру таблицы, может, найдётся кто добрый, подскажет готовый вариант.
А то мы тебя пытаемся наставить на путь истинный, чтобы сам смог....
Ну блин конкретно наезжал сказал завтра ответит... Сослался на вас съехал... с базара... Ладно пацаны я думаю что разберусь СПАСИБО на самом деле. Просто под конец дня голова не варит... А то что IB старый это не моя пробл.... удачи вам...