我已经阅读了SO上的一些帖子,并理解了where子句和on子句之间的区别。但是,大多数这些示例都是在右表中进行过滤(使用左联接时)。如果我有一个如下所示的查询:
select * from tableA A left join tableB B on A.ID = B.ID and A.ID = 20
返回的值与我预期的不同。我原以为它首先过滤左表并仅提取ID = 20的行,然后再与tableB进行左连接。
当然,从技术上讲,这应该与执行以下操作相同:
select * from tableA A left join table B on A.ID = B.ID where A.ID = 20
但是我认为,在执行联接之前,如果您能够筛选表格,则性能会更好。有人可以启发我关于如何处理此SQL并帮助我彻底理解吗?