在sql中,在外连接时,如果想先经where筛选表格,再用筛选后的表格进行外连接,如下写法是错误的:
我们想先对s表和d表进行筛选,再将这两个表外连接。但上面这个效果和内连接(INNER JOIN)是一样的!在大多数的SQL实现中,这种现象实际上是比较常见的。之所以发生这种情况,是因为会先执行JOIN语句,然后再将结果通过WHERE 语句进行过滤。
有一个适用于所有种类连接的解决方案,那就是使用嵌套SELECT语句:
在sql中,在外连接时,如果想先经where筛选表格,再用筛选后的表格进行外连接,如下写法是错误的:
我们想先对s表和d表进行筛选,再将这两个表外连接。但上面这个效果和内连接(INNER JOIN)是一样的!在大多数的SQL实现中,这种现象实际上是比较常见的。之所以发生这种情况,是因为会先执行JOIN语句,然后再将结果通过WHERE 语句进行过滤。
有一个适用于所有种类连接的解决方案,那就是使用嵌套SELECT语句: