У меня две таблицы:
TABLEA: ID: (автоинкремент) НАЗВАНИЕ: VARCHAR LAST_NAME: VARCHAR NATIONALITY: VARCHAR
TABLEB: ID: (автоинкремент) НАЗВАНИЕ: VARCHAR LAST_NAME: VARCHAR ФУТБОЛ: КОМАНДА: VARCHAR
Я хочу получить комбинацию TableA.name и TableA.last_name, которые не существуют в TableB.... Я не знаю, как... Im устал :(
Используйте ниже заданный запрос для получения желаемого результата:
Select TABLEA.NAME, TABLEA.LAST_NAME
from TABLEA
INNER JOIN TABLEB
ON TABLEA.NAME!=TABLEB.NAME AND TABLEA.LAST_NAME!=TABLEB.LAST_NAME;
Это также будет работать:
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)
Достаточно простого левого соединения. Когда вы делаете левое соединение по имени и фамилии, а 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;
and b.LAST_NAME is NULL
как это гарантировано, если нет подходящей записи.
Попробуй это:
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
);