Страница 1 из 1

left join

Добавлено: 06 дек 2004, 14:10
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: ????

Re: left join

Добавлено: 06 дек 2004, 14:25
Merlin
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...и в левой таблице среди номеров этот ) тоже нашелся)))...при том что автор базы уверял что такого там быть не должно

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