CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

这个查询怎么写

楼主goodliu(asd)2003-09-02 08:48:47 在 MS-SQL Server / 疑难问题 提问

现有十多个表,每个表都有一个相同的字段:ID。有一个基础表,其他的所有的表中的ID字段的内容在基础表中都有。现有一个问题,如何确定基础表中的某一条记录的ID号在其他的的哪个表中,用SQL语句实现。急,在线等候 问题点数:0、回复次数:5Top

1 楼pengdali()回复于 2003-09-02 08:52:34 得分 0

select   *   from   基础表   a   join   (select   *   from   表1   union   all   select   *   from   表2)   b   on   a.id=b.id  
  Top

2 楼yujohny(踏网无痕)回复于 2003-09-02 08:52:56 得分 0

IF   (SELECT   COUNT(*)   FROM   表1   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表2   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表3   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表4   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表5   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表6   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表7   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表8   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表9   WHERE   主ID   =   ID)   >   0  
      OR   (SELECT   COUNT(*)   FROM   表10   WHERE   主ID   =   ID)   >   0     THEN  
  BEGIN  
      ………………  
  ENDTop

3 楼zhouzhouzhou(人生程序)回复于 2003-09-02 08:53:19 得分 0

使用過程吧Top

4 楼yujohny(踏网无痕)回复于 2003-09-02 08:58:10 得分 0

理解错误,用函数,利用函数的返回值来判断属于哪个表(前提是ID只能是属于一个从表中,有可能共有一个ID,那就不是这样返回了)  
  CREATE   FUNCTION   shuyubiao   (@ID   INT)  
  RETURNS   INT  
  AS  
  BEGIN  
      DECLARE   @AA   INT  
      SET   @AA   =   0  
      IF   (SELECT   COUNT(*)   FROM   表1   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   1  
      IF   (SELECT   COUNT(*)   FROM   表2   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   2  
      IF   (SELECT   COUNT(*)   FROM   表3   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   3  
      IF   (SELECT   COUNT(*)   FROM   表4   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   4  
      IF   (SELECT   COUNT(*)   FROM   表5   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   5  
      IF   (SELECT   COUNT(*)   FROM   表6   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   6  
      IF   (SELECT   COUNT(*)   FROM   表7   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   7  
      IF   (SELECT   COUNT(*)   FROM   表8   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   8  
      IF   (SELECT   COUNT(*)   FROM   表9   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   9  
      IF   (SELECT   COUNT(*)   FROM   表10   WHERE   主ID   =   ID)   >   0   THEN  
          SET   @AA   =   10  
   
      RETURN   @AA  
  END  
   
  这样返回值为0则不属于任何表,1为表1,2为表2……Top

5 楼liuyun2003(流云(老老实实做人,认认真真还贷))回复于 2003-09-02 09:05:21 得分 0

支持踏网无痕。Top

相关问题

  • 这个查询怎么写?
  • 这个查询怎么写?
  • 这个查询怎么写?
  • 这个查询怎么写?
  • 这个查询怎么写?
  • 这个查询怎么写。
  • 这个查询怎么写?
  • 这个查询怎么写?
  • 这个sql查询语句怎么写?
  • 这个sql查询语句怎么写?

关键词

  • where主
  • 表
  • aa
  • from表
  • select count
  • 基础表
  • then set
  • 返回
  • select

得分解答快速导航

  • 帖主:goodliu

相关链接

  • SQL Server类图书

广告也精彩

反馈

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