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

解决方案 »

  1.   

    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
      ………………
    END
      

  2.   

    理解错误,用函数,利用函数的返回值来判断属于哪个表(前提是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……