Как выбрать данные из двух таблиц, которые не идентичны в другой таблице, используя условие WHERE в MySQL

#mysql #sql

#mysql #sql

Вопрос:

У меня есть две таблицы, это «Студент» и «Пользователь«. Я хочу выбрать first_name и Last_name из таблицы «Student», которые не совпадают с «Student_ID» пользовательской таблицы.

 SELECT student.student_id, 
       student.first_name, 
       student.last_name 
FROM   student, 
       USER 
WHERE  student.student_id != USER.student_id 
  

Ответ №1:

То же, NOT IN что и version, но работает немного лучше. В соответствии с этим: https://www.eversql.com/sql-syntax-check-validator /

 SELECT
  student.student_id,
  student.first_name,
  student.last_name
FROM
  student
WHERE
  NOT EXISTS (
    SELECT
      student_id
    from
      user
    where
      user.student_id = student.student_id
  )
  

Комментарии:

1. Это превосходит NOT IN версию, потому что она NULL правильно обрабатывает user.student_id значения.

Ответ №2:

Попробуйте использовать этот запрос:

 SELECT firstname,lastname 
FROM Student 
WHERE ID NOT IN(SELECT Student_ID from User);