Проверьте, существует ли значение столбца в другом столбце на группу

Этот ниже код удалит полный элемент объекта из массива, где номер телефона «+1786543589455»

db.collection.update(
  { _id: id },
  { $pull: { 'contact': { number: '+1786543589455' } } }
);
0
задан fa06 25 March 2019 в 13:22
поделиться

2 ответа

Другой подход к использованию cte и temptables:

  1. . Определите значения var2, которые не включены в var1 для той же самой моей группы. список, который вы нашли в шаге 1.

Попробуйте ниже:

create table #temp (mygroup int, var1 int, var2 int)
insert into #temp values 
(1 ,         1,          null),
(1 ,         2,         1),
(1 ,         3,          2),
(1 ,         4,          null),
(2 ,        23,         23 ),
(2 ,        24,         20 ),
(2 ,        26,          null),
(3 ,        30,         10),
(3 ,        20,          null),
(3 ,        10,          null)

;with cte as (
select t.mygroup, t.var1, t2.var2
from #temp t
inner join #temp t2 on t2.var2=t.var1 and t2.mygroup = t.mygroup
)
select var2
into #notIncludeList
from #temp 
where var2 not in (select var1 from cte)

select mygroup
from #temp
where var2 in (select var2 from #notIncludeList)
group by mygroup

Это решение работало в MsSql-2014.

0
ответ дан Eray Balkanli 25 March 2019 в 13:22
поделиться

использование не существует

select mygroup from table_name t1
where not exists( select 1 from table_name t2 where t1.var2=t2.var1
                and t1.mygroup=t2.mygroup)
       and t1.var2 is not null 
0
ответ дан Zaynul Abadin Tuhin 25 March 2019 в 13:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: