我有这个问题:
select *
from table1 d inner join table2 s on d.SOME_ID = s.SOME_ID
where s.col1 = 'THIS' AND s.col2 = 'THAT'
返回的内容与此相同:
select *
from table1 d inner join table2 s on d.SOME_ID = s.SOME_ID
where s.col1 = 'THIS'
也就是说,它似乎忽略了WHERE的第二部分。
如果我这样做:
select *
from table2 s
where s.col1 = 'THIS' AND s.col2 = 'THAT'
一切正常,结果会被两种资格过滤掉。
我错过了这个联接的东西吗?
编辑:
两个表都有' col2',两者的值相同(巧合)。有趣的是,这有效:
select *
from table1 d inner join table2 s on d.SOME_ID = s.SOME_ID
where s.col1 = 'THIS' AND d.col2 = 'THAT'
返回满足两个限定符的单行。这有助于任何人弄清楚发生了什么吗?
EDIT2:
这是在黑暗中拍摄的。由于两个表都包含' col2'如果,连接是否会丢弃table2.col2列以生成连接?因此,当我通过新表中未包含的列的限定条件过滤结果连接时,它们都通过了?