Mysql Query - выберите различия между двумя столбцами двух таблиц

0

У меня две таблицы:

TABLEA: ID: (автоинкремент) НАЗВАНИЕ: VARCHAR LAST_NAME: VARCHAR NATIONALITY: VARCHAR

TABLEB: ID: (автоинкремент) НАЗВАНИЕ: VARCHAR LAST_NAME: VARCHAR ФУТБОЛ: КОМАНДА: VARCHAR

Я хочу получить комбинацию TableA.name и TableA.last_name, которые не существуют в TableB.... Я не знаю, как... Im устал :(

  • 0
    я исправил имена таблиц
Теги:
select
join

4 ответа

0

Используйте ниже заданный запрос для получения желаемого результата:

Select TABLEA.NAME, TABLEA.LAST_NAME 
from TABLEA 
INNER JOIN TABLEB 
ON TABLEA.NAME!=TABLEB.NAME AND TABLEA.LAST_NAME!=TABLEB.LAST_NAME;
0

Это также будет работать:

SELECT a.name, a.last_name 
FROM TableA a
WHERE NOT EXISTS (SELECT * FROM TableB b WHERE b.name=a.name AND b.last_name = a.last_name)
0

Достаточно простого левого соединения. Когда вы делаете левое соединение по имени и фамилии, а B.name равно null, это означает, что запись найдена в таблице A, но не в таблице B.

SELECT A.NAME, A.LAST_NAME
 FROM TABLEA A
 LEFT JOIN TABLEB B
 ON A.NAME = B.NAME AND A.LAST_NAME=B.LAST_NAME
 WHERE B.NAME is null and B.LAST_NAME is null;
  • 0
    Вам действительно не нужно, and b.LAST_NAME is NULL как это гарантировано, если нет подходящей записи.
  • 0
    Я знаю. Просто для удобства чтения.
0

Попробуй это:

select 
   concat(first_name, ' ', last_name) as full_name 
from TableA 
having full_name not in (
   select 
      concat(first_name, ' ', last_name) as full_name 
   from TableB
);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню