Задать вопрос
@frmax
человек

Как сравнить 2 таблицы и вывести id который нет во второй талице?

Добрый день, есть 2 таблицы

test1
id
name

test2
id
test_id
type
name_test2


Мне нужно узнать каких test.id нет в test2.test_id, если такие есть добавить
2 строки по каждому ненайденному id в первой строчке type = 1 во второй type=2. Что-то никак не получается, спасибо за помощь
  • Вопрос задан
  • 162 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
insert into test2 (test_id, type)
select test.id, type_value from test1 
join (
select 1 as type_value
union all
select 2
) as types ON TRUE -- нужно декартово произведение
where not exists (select 1 from test2 where test2.test_id = test.id)


Если mysql древний, то, возможно, эффективнее будет test left join test2 on test2.test_id = test.id where test2.test_id is null
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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