Во-первых, давайте удостоверимся, что вы понимаете, что такое левое соединение. Попробуйте думать об этом так. Левая сторона - это то, как я думаю в последовательном порядке предложения FROM. Вы читаете слева направо, поэтому первая таблица - это моя ЛЕВАЯ сторона, которую я ВСЕГДА хочу. Правая сторона (следующая таблица в запросе) является необязательной, но если она существует, отлично, у меня есть больше деталей.
Так возьмите сценарий людей и заказов. Я хочу список всех людей. Но если у них есть заказ, это еще лучше.
select
P.LastName,
O.OrderID,
O.OrderDate
from
People P
LEFT JOIN Order O
on P.PersonID = O.PersonID
Это сделает именно это. Покажите всем людям, и если у них есть заказ, который приходит для поездки. Если у них есть несколько заказов, будет показана строка для ВСЕХ заказов, которые у них были.
Теперь расширим критерии до следующей таблицы. Допустим, я хотел показывать заказы только с 2018 года. Это станет частью предложения LEFT JOIN "ON", потому что я забочусь только о части заказов в требовании.
LEFT JOIN Order O
on P.PersonID = O.PersonID
AND O.OrderDate >= '2018-01-01'
Я все равно получу ВСЕХ людей, но информация о заказе будет показана только для тех, у кого дата заказа 1 января 2018 года или позже.
Теперь, если вы заботитесь только о ТОЛЬКО ЛЮДЯХ, У КОТОРЫХ БЫЛИ ЗАКАЗЫ, а заказы были включены после 2018 года, это в основном исключило бы необходимость ЛЕВОГО СОЕДИНЕНИЯ и превратилось в стандартное (ВНУТРЕННЕЕ) СОЕДИНЕНИЕ
JOIN Order O
on P.PersonID = O.PersonID
AND O.OrderDate >= '2018-01-01'
JOIN Обязательно должна быть найдена запись в боковой таблице ORDER
Итак, в вашем сценарии, откуда берутся ваши псевдонимы "x" и "y". Совершенно неясно с учетом контекста, но, надеюсь, приведенные выше пояснения помогут вам решить ваш запрос. Если нет, обновите его, уточнив и уточнив, что вы пытаетесь из него извлечь.