Это может быть дубликат, но я не знаю, как правильно искать. Я могу написать базовый sql и узнать концепцию «Декартово произведение». Но я всегда в некоторой степени смущен насчет на в соединении. Пример в SQLServer:sql join 'on' оператор не фильтрует
A | B
--+--
1 | 2
2 | 3
select * from ta left join tb on ta.A = 2 --??!
A | B
--+--
1 | Null
2 | 2
2 | 3
select * from ta left join tb on tb.B = 2 --seems easier to understand
A | B
--+--
1 | 2
2 | 2
Может ли один объяснить 1-й SQL (на ta.A = 2), почему колонка А не фильтруется. Кстати, я знаю самое распространенное использование на ta.ColA = tb.ColB, но в этом вопросе я просто хочу знать, как работает на.
У вас есть ошибка в вашем выходе, что затрудняет понимание проблемы. В вашем первом выводе вторая строка должна иметь 'A = 2', а не' A = 1'. –
Извините, я обновил его. –