Задать вопрос
vanesxl
@vanesxl

Как сравнить 2 списка?

Добрый день, подскажите пожалуйста
есть таблица 1 в ней хранится полный список приглашенных гостей:
id|fio|snils
есть таблица 2 в ней хранится список гостей которые смогли прийти:
id|fio|snils
как мне составить запрос так чтоб понять кто не пришел?
заранее большое спасибо

P.S. Идеи типа "почему не поставить еще 1 столбец и отмечать тех кто явился" прошу не предлагать, так как данным примером я пытался понятней описать то что мне нужно вытащить значения из первой таблице которые отсутствуют во второй.
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
vanesxl
@vanesxl Автор вопроса
Решил задачу вот так:
SELECT * FROM t1 WHERE snils NOT IN (SELECT snils FROM t2)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dimoff66
Кратко о себе: Я есть
Левое соединение по id с условием IS NULL

Если же таблицы уже в виде объектов языка, а не в базе, то например на javascript нужно сделать следующее - отсортировать таблицы по id, затем

var ind1 = 0; 
for(var i = 0; i < table2.length; i++) {
   while(table1[ind1++].id !== table2[i].id) {
      console.log('Не пришел ' + table1[ind1 - 1].id);
   }
}

for(i = ind1; i < table1.length; i++) {
   console.log('Не пришел ' + table1[i].id);
}
Ответ написан
Комментировать
LaRN
@LaRN
Senior Developer
Как-то так:
select t1.fio
  from таблица 1 as t1
  left join таблица 2 as t2
         on t2.id = t1.id
 where t2.fio is null
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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