有个小问题,请教各位

union_V 2010-11-12 06:40:12
select a.*,b.hosc_price from mac_item a left outer JOIN handleofficial_storagechild b on a.macbs_sid=b.hosc_macbs_sid
用这个sql语句查询两个表的数据,结果a.*数据出来了,b.hosc_price的数据全部显示NULL。我换成
select a.*,b.hosc_price from mac_item a right outer JOIN handleofficial_storagechild b on a.macbs_sid=b.hosc_macbs_sid
查询的时候,a.*的全是NULL,b.hosc_price倒是出来了。
不晓得什么情况,请各位给个能正常显示数据的查询方法。
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-11-13
  • 打赏
  • 举报
回复
select a.*,b.hosc_price
from mac_item a left outer JOIN handleofficial_storagechild b
on a.macbs_sid=b.hosc_macbs_sid

select a.*,b.hosc_price
from mac_item a right outer JOIN handleofficial_storagechild b
on a.macbs_sid=b.hosc_macbs_sid

这说明你的两表不存在macbs_sid = hosc_macbs_sid的情况。

将你的语句换成:

select a.*,b.hosc_price
from mac_item a inner join handleofficial_storagechild b
on a.macbs_sid=b.hosc_macbs_sid

就应该无数据了。
rucypli 2010-11-12
  • 打赏
  • 举报
回复
请百度left join right join full outer join区别
--小F-- 2010-11-12
  • 打赏
  • 举报
回复
给点测试数据吧
「已注销」 2010-11-12
  • 打赏
  • 举报
回复
贴出表结构,测试数据,期望结果
「已注销」 2010-11-12
  • 打赏
  • 举报
回复
select a.*,b.hosc_price 
from mac_item a
left outer JOIN handleofficial_storagechild b ---左连接就是以左表为主,左表全部查出来,再找出符合条件的右表数据,如果没有则显示null,右连接反之。
on a.macbs_sid=b.hosc_macbs_sid

34,588

社区成员

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

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