我有一个 mysql 表,其中包含跨多个表的大量数据。因此,为了得到这一切,我认为最好的办法是使用 UNION 子句,但是我也想知道结果来自哪个表,因为有些表有多个值,有些是空的。
以下 sql 似乎不起作用,但我看不出有什么问题。
(SELECT *, `2` AS 'cat' from `2` where `recid` = 'cneta0ld00ah')
UNION
(SELECT *, `3` AS 'cat' from `3` where `recid` = 'cneta0ld00ah')
UNION
(SELECT *, `4` AS 'cat' from `4` where `recid` = 'cneta0ld00ah')
UNION
(SELECT *, `5` AS 'cat' from `5` where `recid` = 'cneta0ld00ah')
所有类似于以下内容的表都被命名为 1、2、3、4 等。
recid | item
-------------------------
cneta0ld00ah | 1
cneta0ld00ab | 1
cneta0ld00ad | 3
我无法更改表的名称,因为它是从我们试图转换和提取数据的非常旧的数据库中导入的。
如果我在没有 'table-name' AS 'cat' 的情况下运行它,那么它运行良好,只要我尝试添加表名,它就会抛出一个错误说
Unknown column '2' in 'field list'
似乎在想 2 是一个列名?