Re: SELECT ... WHERE ... IN (SELECT ...) -> SELECT ... WHERE (... OR ... )

Поиск
Список
Период
Сортировка
От Anton
Тема Re: SELECT ... WHERE ... IN (SELECT ...) -> SELECT ... WHERE (... OR ... )
Дата
Msg-id 8cac8dd0612040949y391b0448me135c20b427812e8@mail.gmail.com
обсуждение исходный текст
Ответ на Re: SELECT ... WHERE ... IN (SELECT ...) -> SELECT  (Oleg Bartunov <oleg@sai.msu.su>)
Ответы Re: SELECT ... WHERE ... IN (SELECT ...) -> SELECT ... WHERE (... OR ... )
Список pgsql-ru-general
> Это только у меня все строки смешались ? Абсолютно недружественный
> пост, читать невозможно.

Мои извинения, возможно gmail всё слил...

> >> SELECT collect_time FROM n_traffic, n_logins WHERE collect_time > '1970-01-01 00:00:00' AND n_traffic.login_id =
n_logins.login_idAND account_id = '1655'; 
>> А так не лучше? C индексами по login_id в обоих таблицах...
> > Всё замечательно до тех пор, пока не добавляется ORDER BY collect_time LIMIT
1. А без (ORDER BY collect_time LIMIT 1) замечательно отрабатывает и
Вашвариант, и IN.
> > Вся штука, что сортировка и лимит почему-то плохо работают суказанными
> > вариациями (по сути ведь это JOIN, так ведь...), когда дляaccount_id =  '...'
> > есть БОЛЬШЕ ЧЕМ ОДИН login_id.Когда login_id всего один, все варианты
> > довольно быстры.

> > На всякий случай:engineer@billing=# \d n_traffic
> > Modifiers--------------+-----------------------------+------------------------------

login_id     | integer   | not null

traftype_id  | integer | not null

collect_time | timestamp without time zone | not null default now()

 bytes_in     | bigint                      | not null default (0)::bigint

 bytes_out    | bigint                      | not null default (0)::bigint

Indexes:

"n_traffic_login_id_key" UNIQUE, btree (login_id, traftype_id, collect_time)

"n_traffic_collect_time" btree (collect_time)

"n_traffic_collect_time_month" btree (date_trunc('month'::text,collect_time))

"n_traffic_login_id" btree (login_id)Foreign-key constraints:

"n_traffic_login_id_fkey" FOREIGN KEY (login_id) REFERENCES n_logins(login_id)
 ON UPDATE CASCADE

 "n_traffic_traftype_id_fkey" FOREIGN KEY (traftype_id) REFERENCES
n_traftypes(traftype_id) ON UPDATE CASCADE


> > engineer@billing=# \d n_logins
Modifiers------------+------------------------+-------------------------------------------------------------
 login_id   | integer                | not null
defaultnextval('n_logins_login_id_seq'::regclass)

account_id | integer | not null login      | character varying(255) | not null

pwd        | character varying(128) |

Indexes:
"n_logins_pkey" PRIMARY KEY, btree (login_id)

"n_logins_login_key" UNIQUE, btree ("login")

"n_logins_account_id" btree (account_id)

Foreign-key constraints:

"n_logins_account_id_fkey" FOREIGN KEY (account_id) REFERENCES
n_accounts(account_id)

Triggers:
tr_after_n_logins AFTER INSERT OR DELETE OR UPDATE ON n_logins FOREACH
ROW EXECUTE PROCEDURE tr_f_after_n_logins()

tr_before_n_logins BEFORE UPDATE ON n_logins FOR EACH ROW
EXECUTEPROCEDURE tr_f_before_n_logins()

--
engineer

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Teodor Sigaev
Дата:
Сообщение: Re: SELECT ... WHERE ... IN (SELECT ...) -> SELECT
Следующее
От: Anton
Дата:
Сообщение: Re: SELECT ... WHERE ... IN (SELECT ...) -> SELECT ... WHERE (... OR ... )