如何知道数据来自一个UNION mysql查询


How to know where data comes from in a UNION mysql query

我有这个mysql结果查询:

SELECT 
    * 
FROM 
   ( SELECT 
         * 
     FROM userA 
     UNION 
     SELECT 
         * 
     FROM userB 
     UNION 
     SELECT 
         * 
     FROM userC ) AS friendresult 
ORDER BY create_date DESC 
LIMIT 0 , 15

为了检索数据,我使用mysql_fetch_array,但我想知道我获取的每一行的来源。

提前感谢!

您可以选择一个新列,以指示数据来自哪个表。比如:

SELECT * 
FROM 
( 
    SELECT *, 'userA' AS ComesFrom FROM userA 
    UNION ALL
    SELECT *, 'userB'              FROM userB 
    UNION ALL
    SELECT *, 'userC'              FROM userC
) AS friendresult 
ORDER BY create_date DESC 
LIMIT 0 , 15