我正在尝试将多个表合并到一个查询中,并按日期进行排序。
但是,我还需要一个列来定义信息来自哪个表-这样我就可以使用PHP来决定如何处理数据。
这是我到目前为止所拥有的
SELECT DATABASE() as source, title AS MAIN, id as ID, date
FROM collection WHERE userID = '1234'
UNION
SELECT DATABASE() as source, body, id, date
FROM blog WHERE posterID = '1234'
ORDER BY date DESC它工作得很好,并且按日期排序,但是“源”列只返回数据库"myusername.dabtabaseName“。
有没有什么办法可以让mySQL返回它的表名呢?我看了一下手册,但什么也找不到。
谢谢。
发布于 2010-11-20 09:44:08
为什么不简单一点呢?
SELECT DATABASE() as source, 'Collection' as TblName,title AS MAIN, id as ID, date
FROM collection WHERE userID = '1234'
UNION
SELECT DATABASE() as source, 'Blog' as TblName,body, id, date
FROM blog WHERE posterID = '1234'
ORDER BY date DESC我怀疑SQL的任何一种方言都不会为您提供指示查询的表名的函数,因为您可以有子查询、连接等。
https://stackoverflow.com/questions/4230747
复制相似问题