CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

怎样联合查询数据库中跨表数据?向高手求助

楼主eilian()2005-06-04 15:19:49 在 MS-SQL Server / 应用实例 提问

最近碰到个棘手的问题。  
          比如说我想查询一下物品A的信息。而A物品在我的数据库表里占用四个表。  
          数据库名eilian;表goods中存放MatId(物品ID),MatQty(数量),MatUnitId(计量单位ID),MatSortId(物品类别ID),MatHouseId(库房id)五个键值,表goodsname中存放MatId,MatName两个键值,表goodsunit中存放MatUnitId极其此UnitId对应的UnitName(计量单位,如“千克”),表goodssort中存放MatSortId和MatSortName(物品类别名称)。  
  例如我的表的结构是这样的:  
  goods:  
              MatId     MatQty       MatUnitId     MatSortId     MatHouseId  
                  1             30                     1                   1                         2  
                  2             23                     2                   1                       1  
                  3             34                     2                     2                       2  
                  4             40                     1                     2                       1  
  goodsname:  
              MatId     MatName  
                  1               香肠  
                  2               火腿  
                  3               橘子  
                  4               水蜜桃  
  goodsunit:  
              MatUnitId       UnitName  
                    1                       吨  
                    2                       千克  
  goodssort:  
              MatSortId       MatSortName  
                      1                       食物  
                      2                       水果  
                 
  那么,我想实现一个查询,比如说查询1号库的东西,查询结果能按照如下显示:  
      MatId   MatName     MatQty       MatUnitName     MatSortName            
          2         火腿             34               千克                   食物                    
          4         水蜜桃         40               吨                       水果                        
   
   
          请高手指教我该如何做,万分感谢!!!  
   
  问题点数:50、回复次数:3Top

1 楼xluzhong(Ralph)回复于 2005-06-04 15:31:23 得分 0

select   a.matid,b.matname,a.matqty,c.unitname,d.matsortname  
  from   goods   a  
  inner   join   goodsname   b   on   a.matid=b.matid  
  inner   join   goodsunit   c   on   a.matunitid=c.matunitid  
  inner   join   goodssort   d   on   a.matsortid=d.matsortidTop

2 楼xluzhong(Ralph)回复于 2005-06-04 15:32:01 得分 30

--忘了写条件  
  select   a.matid,b.matname,a.matqty,c.unitname,d.matsortname  
  from   goods   a  
  inner   join   goodsname   b   on   a.matid=b.matid  
  inner   join   goodsunit   c   on   a.matunitid=c.matunitid  
  inner   join   goodssort   d   on   a.matsortid=d.matsortid  
  where   MatHouseId='1'Top

3 楼xiaomeixiang(小山羊:))回复于 2005-06-04 15:34:06 得分 20

 
  select   a.MatId,b.MatName,a.MatQty,c.UnitName   MatUnitName   ,d.MatSortName       from    
  goods   a,goodsname   b,goodsunit   c,goodssort   d  
  where   a.MatId=b.MatId   and   a.MatUnitId=c.MatUnitId   and   a.MatSortId=d.MatSortId   and   a.MatHouseId=1Top

相关问题

  • 跨数据库查询
  • 跨数据库查询?
  • 数据库查询!
  • 数据库查询
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询
  • 数据库查询
  • 查询数据库

关键词

  • 查询
  • 数据库
  • 物品
  • matid
  • matsortid
  • matunitid
  • matqty
  • goodssort
  • goodsunit
  • mathouseid

得分解答快速导航

  • 帖主:eilian
  • xluzhong
  • xiaomeixiang

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo