关于外连接的问题

xwffwx 2007-06-25 05:53:53
方法一:
SELECT * INTO 临时表
FROM 表1 WHERE flag=1

select a.id,a.qty,b.qty
from 临时表 a FULL OUTER JOIN 表2 b ON a.id=b.id

方法二:
select a.id,a.qty,b.qty
from 表1 a FULL OUTER JOIN 表2 b ON a.id=b.id
WHERE a.flag=1

这两种方法得到的结果是不同的,其中方法一的结果是正确的
不明白其中奥妙,请高手解释一下,为什么方法二不能达到方法一的结果
方法二和方法一到底有什么不同
...全文
199 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwffwx 2007-06-28
  • 打赏
  • 举报
回复
谢谢了
being21 2007-06-26
  • 打赏
  • 举报
回复
哈哈,高手来过了怎么还没有结帖啊??
paoluo 2007-06-25
  • 打赏
  • 举报
回复
select a.id,a.qty,b.qty
from 表1 a FULL OUTER JOIN 表2 b ON a.id=b.id
WHERE a.flag=1

這個相當於,先將表1和表2full join,然後用flag=1這個做條件過濾掉數據。

paoluo 2007-06-25
  • 打赏
  • 举报
回复
方法二如下修改,可以得到你的結果

select a.id,a.qty,b.qty
from (Select * From 表1 Where flag=1) a FULL OUTER JOIN 表2 b ON a.id=b.id

這個語句才等同於你的第一種方法
Zack999 2007-06-25
  • 打赏
  • 举报
回复
方法一 先筛选a.flag=1再进行连接
方法二 先连接再筛选

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧