left join

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
dem

left join

Сообщение dem » 06 дек 2004, 14:10

Мистика какая то))
классика - две таблички, в одной поле num(всего 64000 строк), в другой поле num_policy_prior - соотвественно может быть или заполнено или пустое(строк ну так 50000 с хвостиком)

надо сделать выборку - столбец из одной таблички и соответсвующий ему из другой(или пустой)ю классика для left join

пишу

select p.num,jp.num_policy_prior as pjnum from tb_policy p left join tb_jurnal jp on (p.num=jp.num_policy_prior)

получаю 100000 с лишком записей

тоже самое с distinct

select distinct p.num,jp.num_policy_prior as pjnum from tb_policy p left join tb_jurnal jp on (p.num=jp.num_policy_prior)

дает нужный результат... в 64000 строк где правый столбец или нулл или связанное значение..


вопрос один - с какого...не работает первый запрос?????? :shock: ????

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: left join

Сообщение Merlin » 06 дек 2004, 14:25

dem писал(а):Мистика какая то))
классика - две таблички, в одной поле num(всего 64000 строк), в другой поле num_policy_prior - соотвественно может быть или заполнено или пустое(строк ну так 50000 с хвостиком)

надо сделать выборку - столбец из одной таблички и соответсвующий ему из другой(или пустой)ю классика для left join

пишу

select p.num,jp.num_policy_prior as pjnum from tb_policy p left join tb_jurnal jp on (p.num=jp.num_policy_prior)

получаю 100000 с лишком записей

тоже самое с distinct

select distinct p.num,jp.num_policy_prior as pjnum from tb_policy p left join tb_jurnal jp on (p.num=jp.num_policy_prior)

дает нужный результат... в 64000 строк где правый столбец или нулл или связанное значение..


вопрос один - с какого...не работает первый запрос?????? :shock: ????
И правда мистика. Почему запрос с дубликатами в правой таблице работает как должен, а не как нам хочется? :twisted:

Гость

Re: left join

Сообщение Гость » 06 дек 2004, 14:35

Merlin писал(а): И правда мистика. Почему запрос с дубликатами в правой таблице работает как должен, а не как нам хочется? :twisted:
угу))оно самое - сразу не разобрался...правда дубликаты оказались не специальные а так...левые)
а именно в правой таблице если соответсвия нет ставился 0...и в левой таблице среди номеров этот ) тоже нашелся)))...при том что автор базы уверял что такого там быть не должно

итог доверяй - но проверяй((

Ответить