SQL相关查询

时间:2015-04-08 11:06:23

标签: sql

我有3个表,名为“A”,“B”和“C”,列名为“Name”,“Roll_No”和“Age”。我想找到一个引用“Roll_No”列的行,但我不知道所需的行存在于哪个表中。我需要一个SQL语句,它将返回该行以及相应的表名。

2 个答案:

答案 0 :(得分:1)

使用union,如下所示:

select Name, Roll_No, Age ,'A' as table_name from A where Roll_No=--the value
union 
select Name, Roll_No, Age ,'B' as table_name from B where Roll_No=--the value
union 
select Name, Roll_No, Age ,'C' as table_name from C where Roll_No=--the value

答案 1 :(得分:0)

如果需要一次指定WHERE子句,请尝试此操作:

SELECT *
FROM 
   (SELECT Name, Roll_No, Age, 'A' AS TableName
      FROM A
     UNION
    SELECT Name, Roll_No, Age, 'B'
      FROM B
     UNION
    SELECT Name, Roll_No, Age, 'C'
      FROM C) Tbl
WHERE Roll_No = [value]