加入多个表并显示当前表

时间:2011-03-08 14:45:29

标签: mysql

我想要实现的目标可能很难解释,所以我会尽力而为。

我想在mysql中加入三个表的结果,结果包括表名/或别名,所以我知道信息来自哪个表。

我的所有表都有共同的列。

3 个答案:

答案 0 :(得分:1)

你应该尝试:

select 'mytable1', column1, column2
union
select 'mytable2', column1, column2
union
select 'mytable3', column1, column2

答案 1 :(得分:1)

您可以使用mysql的别名功能

像这样

select table1.col1 as table1_col1, table2.col1 as table2_col1...

答案 2 :(得分:0)

你的意思不是这样吗?

SELECT t1.*, "t1" as tablename FROM t1
UNION 
SELECT t2.*, "t2" as tablename FROM t2

其中t1t2是您的表格

顺便说一下:以这种方式存储数据是不正确的。如果您需要在单个查询中联合来自两个表的数据,则应考虑将表合并为一个,将更多有价值的属性添加为新列(并可能将其添加到键中)。例如,您的表是

CREATE TABLE american_cars(id INT, company TEXT, model TEXT)
CREATE TABLE european_cars(id INT, company TEXT, model TEXT)

然后你应该把它合并为

CREATE TABLE cars(id INT, company TEXT, model TEXT, region TEXT)

或类似的东西。