這可能是重複的,但我不知道如何正確搜索。我可以寫基本的SQL,並且知道'笛卡爾積'的概念。但我總是在某種程度上對加入感到困惑。實施例中的sqlserver:sql join'on'operator not filtering
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
能任一項解釋第一SQL(上ta.A = 2),爲什麼是A列不過濾。順便說一下,我知道ta.ColA = tb.ColB最常見的用法,但在這個問題中,我只是想知道的是如何工作的。
您在輸出中出現錯誤,導致難以理解問題。在你的第一個輸出中,第二行應該有'A = 2',而不是'A = 1'。 –
對不起,我更新了它。 –