Страница 1 из 1
Как правильно организовать Select
Добавлено: 04 сен 2006, 16:26
Vetal
Здраствуйте, если не трудно подскажите в сл.вопросе. Для примера есть таблица с двумя полями, нужно сделать select который выбрал бы по первому полю все записи а по второму полю только записи по нужному условию, только одним селектом. Меня на этом замкнуло ниче в голову кроме двух селектов не приходит....
Добавлено: 04 сен 2006, 17:00
WildSery
Table1 t1 JOIN Table1 t2
Добавлено: 04 сен 2006, 17:06
Merlin
LEFT

Добавлено: 04 сен 2006, 17:10
kdv
Добавлено: 04 сен 2006, 17:36
WildSery
Merlin писал(а):LEFT

Я уж грешным делом решил, что если ему действительно "не хватает идеи", то сам догадается, что левый нужон.
Добавлено: 04 сен 2006, 17:38
WildSery
и ещё. пользуйся алиасами.
Добавлено: 04 сен 2006, 17:39
Vetal
WildSery писал(а):и ещё. пользуйся алиасами.
Код: Выделить всё
select
viewdate.fdate,
sum(viewdate.bytesoutput),
0
from
viewdate
left join viewdate on viewdate.namelog='HTTP.log'
group by
viewdate.fdate
IBExpert просто вешаеться...
Добавлено: 04 сен 2006, 17:41
WildSery
Ты начинаешь издеваться.
перепиши в таком виде:
Код: Выделить всё
... from viewdate v1 left join viewdate v2 ...
и условие соединения не viewdate.namelog='HTTP.log', кстати, непонятно к какой из таблиц относящийся, а нормальное, по id какому-нибудь (кстати, оно есть?)
Добавлено: 04 сен 2006, 17:44
kdv
IBExpert просто вешаеться...
статью таки не прочитал. см. ответ WildSery. таблица слева у тебя идет целиком, то есть для нее plan natural. и еще стоит group by. Даже если есть индекс по fdate, все равно переберутся все записи, что долго и нудно.
Кроме того, необходимость в таком запросе явно намекает на хранение промежуточных агрегатов.
p.s. еще неизвестно, что там во viewdate, если это view.
Добавлено: 04 сен 2006, 17:45
Vetal
WildSery писал(а):Ты начинаешь издеваться.
перепиши в таком виде:
Код: Выделить всё
... from viewdate v1 left join viewdate v2 ...
и условие соединения не viewdate.namelog='HTTP.log', кстати, непонятно к какой из таблиц относящийся, а нормальное, по id какому-нибудь (кстати, оно есть?)
Вешается ....! И не отвечает...

Добавлено: 04 сен 2006, 17:48
Merlin
Ой, ну нельзя же так, я щас описаюсь

Цитировать пол-ответа перед вопросом и всё же задавать его - это уже полный аут

И условие объединения достойно пера Айвазовского

SQL - это ведь очень просто на самом деле. Меняем слово Select на Достань, From на Из, Left Join на Объединяя Слева, On на По, Where на Где, Group By на Группируя По, Order By на Сортируя По и читаем полученную фразу и пытаемся прикинуть как сами вместо сервера выполняли бы указание. Тогда сразу становится видно, где от тебя, то бишь сервера, требуют херню.
Добавлено: 04 сен 2006, 17:49
Vetal
kdv писал(а):IBExpert просто вешаеться...
статью таки не прочитал. см. ответ WildSery. таблица слева у тебя идет целиком, то есть для нее plan natural. и еще стоит group by. Даже если есть индекс по fdate, все равно переберутся все записи, что долго и нудно.
Кроме того, необходимость в таком запросе явно намекает на хранение промежуточных агрегатов.
p.s. еще неизвестно, что там во viewdate, если это view.
Да еще читаю..., да это view потому что это был один из вариантов взять из поля datetime только date потому, что InterBase 5.5 и функции выбора только даты не работают.

Добавлено: 04 сен 2006, 17:51
WildSery
Vetal писал(а):Вешается ....! И не отвечает...

Оборзел IBExpert! Наедь на него конкретно, пусть ответит
Укажи хоть структуру таблицы, может, найдётся кто добрый, подскажет готовый вариант.
А то мы тебя пытаемся
наставить на путь истинный, чтобы сам смог....
Добавлено: 04 сен 2006, 17:52
kdv
что InterBase 5.5 и
мда. тебе подсказать, или подождать, пока у тебя база грохнется? Стрясти с тебя денег за ремонт...
Добавлено: 04 сен 2006, 17:55
Vetal
kdv писал(а):что InterBase 5.5 и
мда. тебе подсказать, или подождать, пока у тебя база грохнется? Стрясти с тебя денег за ремонт...
Смешно,

спасибо за профилактику мозгов, просто уже голова не варит....
Добавлено: 04 сен 2006, 17:58
Vetal
WildSery писал(а):Vetal писал(а):Вешается ....! И не отвечает...

Оборзел IBExpert! Наедь на него конкретно, пусть ответит
Укажи хоть структуру таблицы, может, найдётся кто добрый, подскажет готовый вариант.
А то мы тебя пытаемся
наставить на путь истинный, чтобы сам смог....
Ну блин конкретно наезжал сказал завтра ответит... Сослался на вас съехал... с базара... Ладно пацаны я думаю что разберусь СПАСИБО на самом деле. Просто под конец дня голова не варит... А то что IB старый это не моя пробл....

удачи вам...
Добавлено: 04 сен 2006, 17:59
kdv
просто уже голова не варит....
я про 5.6, кстати. которая настоятельно рекомендуется вместо 5.5.
Добавлено: 04 сен 2006, 18:02
Vetal
kdv писал(а):просто уже голова не варит....
я про 5.6, кстати. которая настоятельно рекомендуется вместо 5.5.
ДА ладно прикалывать... все я понял, не задрачивайте....

Добавлено: 05 сен 2006, 12:09
CyberMax
Vetal писал(а):ДА ладно прикалывать... все я понял, не задрачивайте....

Выбирай выражения. И нигде тебя там не прикалывают. Тебе реальные вещи объясняют.
Добавлено: 05 сен 2006, 12:21
Vetal
CyberMax писал(а):Vetal писал(а):ДА ладно прикалывать... все я понял, не задрачивайте....

Выбирай выражения. И нигде тебя там не прикалывают. Тебе реальные вещи объясняют.
CyberMax
Спасибо...
