简单问题:我是不是晕了头了????

rabbitisme 2004-09-07 10:02:08
Select * from PE_A WHERE SC_ID='943' 180条数据
Select * from PE_B WHERE SC_ID='943'   180条数据

可是我这样写:
SELECT * FROM PE_A A LEFT JOIN PE_B B ON A.SC_ID=B.SC_ID WHERE A.SC_ID='943'

居然得出几十万条的记录!!!
这是为什么呀???
...全文
85 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxysjl 2004-09-07
  • 打赏
  • 举报
回复
因为a.sic_id全部为'943',a表也是.b表也是,所以每条记录的a.sc_id=b.si_id成立.最终结果为180*180
lovebowl 2004-09-07
  • 打赏
  • 举报
回复
select * from pe_a where sc_id = '943'
union all
select * from pe_b where sc_id = '943'
樓主的需求不明确啊
xj0081 2004-09-07
  • 打赏
  • 举报
回复
Select a.*,b.* from PE_A a, PE_B b WHERE a.SC_ID='943' and a.SC_ID=b.SC_ID
樓主想要的是這樣的結果嗎?

rabbitisme 2004-09-07
  • 打赏
  • 举报
回复
我想要的结果还不清楚吗?
就是要两个表的SC_ID都等于‘943’的数据了。
我看不出我的写法哪里错了:(
rabbitisme 2004-09-07
  • 打赏
  • 举报
回复
可我不知道,他们为什么说我的写法是“多对多”呢????
zlj113 2004-09-07
  • 打赏
  • 举报
回复
那看你要什么样的结果了
LJWS 2004-09-07
  • 打赏
  • 举报
回复
没法直接写
rabbitisme 2004-09-07
  • 打赏
  • 举报
回复
LEFT JOIN 这样会有什么问题吗?

那我应该怎么写?
zjcxc 元老 2004-09-07
  • 打赏
  • 举报
回复
同意楼上,多对多的结果就是这样.
playyuer 2004-09-07
  • 打赏
  • 举报
回复
多新鲜:
180 * 180

34,593

社区成员

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

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