请帮忙看一下,如何改进这个SQL语句,谢谢大家

banluchujia2014 2014-12-12 11:45:28
一个数据库中有现个表

用户信息表(userinfo表)字段及类型:
1、用户编号 字段类型:int
2、区编 字段类型:字符型 (对应于小区信息表中的编号字段)

小区信息表(reginfo表)字段及类型:
1、编号 字段类型:int
2、小区: 字段类型:字符型

Userinfo内容如下:
用户编号 区编
1 1
2

Reginfo内容如下:
编号 小区
1 花园小区
2 新凤小区

当执行以下语句时

select userinfo.用户编号,reginfo.小区 from userinfo, reginfo where val(userinfo.区编) = reginfo.编号

只能查询到1号用户的信息,无法查询到2号用户的信息,这个SQL语句怎么写才能保证两个用户的信息都能被查询到?
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
banluchujia2014 2014-12-13
  • 打赏
  • 举报
回复
引用 4 楼 fredrickhu 的回复:
full join
那不成笛卡尔积了,会产生多余的记录吧?
还在加载中灬 2014-12-12
  • 打赏
  • 举报
回复
SELECT A.用户编号,B.小区
FROM userinfo A LEFT JOIN reginfo B ON val(A.区编)=B.编号
UNION
SELECT A.用户编号,B.小区
FROM userinfo A RIGHT JOIN reginfo B ON val(A.区编)=B.编号
xdashewan 2014-12-12
  • 打赏
  • 举报
回复

select userinfo.用户编号,reginfo.小区  from userinfo left join reginfo on  val(userinfo.区编) = reginfo.编号
James__z 2014-12-12
  • 打赏
  • 举报
回复
wlj768 2014-12-12
  • 打赏
  • 举报
回复
left join 显示左侧全部,right join 显示右侧全部,full join 两侧数据都显示,左侧无对应数据的显示null,右侧无对应数据显示null。
--小F-- 2014-12-12
  • 打赏
  • 举报
回复
full join
mugua604 2014-12-12
  • 打赏
  • 举报
回复
LEFT JOIN

34,590

社区成员

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

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