在SQL查询中包含表名
我需要做的是从联合查询中得到一个表名,其中有来自不同表的4个选择。我需要获取id和表名以作进一步处理。在SQL查询中包含表名
,比如我有表1,表2,表3表4和有一个查询:
SELECT id from table1,blablabla
UNION
SELECT id from table2,blablabla
UNION
SELECT id from table3,blablabla
UNION
SELECT id from table4,blablabla
我需要像结果:
1, blablabla, table1
4, blablabla, table4
7, blablabla, table2
SELECT
ID,
'table1' as TableName
FROM
table1
UNION
...
SELECT
ID,
'table4' as TableName
FROM
table4
谢谢! Exacly我所需要的。 – Alakdae 2010-09-21 13:54:55
中添加的表名的要求
SELECT
id,
blablabla,
'table1' as tableName
FROM
table1
UNION
SELECT
id,
blablabla,
'table2' as tableName
FROM
table2
...
谢谢!尽我所能,但devnull是第一个,所以我接受他的答案。 – Alakdae 2010-09-21 13:56:43
SELECT myid, My otherfield, 'table1' as tablename From table1
UNION
SELECT myid, My otherfield, 'mytabl2' From table2
考虑其他几点,如果这些是互斥使用的表UNION ALL相反,它会快得多。另外,当数据库设计不正确时,如果这些表中有相同的字段,为什么它们不是全部在一个表中,这种类型的问题通常会出现?如果可能的话重新设计,至少考虑你是否会更好地服务于此。不知道这些表是什么,我可以;如果他们应该在一张桌子上,它通常是这样,但通常这是一种代码味道。
感谢您的信息。开始时它是一张表,但新数据来自其他类别,表格现在用于不同类别并保存类似数据,但出于安全原因应保持分开。只有这一个查询访问多个表,并且仅用于列表。 – Alakdae 2010-09-21 14:04:16
你可以使用代码标签,并告诉我们你究竟是什么? – JNK 2010-09-21 13:49:26