我想要实现的目标可能很难解释,所以我会尽力而为。
我想在mysql中加入三个表的结果,结果包括表名/或别名,所以我知道信息来自哪个表。
我的所有表都有共同的列。
答案 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
其中t1
和t2
是您的表格
顺便说一下:以这种方式存储数据是不正确的。如果您需要在单个查询中联合来自两个表的数据,则应考虑将表合并为一个,将更多有价值的属性添加为新列(并可能将其添加到键中)。例如,您的表是
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)
或类似的东西。