日期:2014-05-17  浏览次数:20383 次

求大神解答一个数据库语句的问题

SELECT `id` , `time` , `title`
FROM `think_infor`
WHERE `type` LIKE '$k-%'

UNION ALL

SELECT `id` , `time` , `title`
FROM `think_infor2`
WHERE `type` LIKE '$k-%'

ORDER BY `time` DESC
LIMIT 0,6


用这个语句可以查询到表1和表2的最新6条信息。但是怎么判断记录是哪个表返回的?
或者有什么其他的方法可以实现,不想多次查询

------解决方案--------------------
你自己写的不就可以吗?
SELECT `id` , `time` , `title`, 'think_infor' as tbl_name
  FROM `think_infor`
  WHERE `type` LIKE '$k-%'
UNION
SELECT `id` , `time` , `title`, 'think_infor2' 
  FROM `think_infor2`
  WHERE `type` LIKE '$k-%'
ORDER BY `time` DESC
LIMIT 0,6

加了个输出字段 tbl_name 用以区分数据来源
union all 改成 union 用于避免出现重复记录。不多加了来源就重复的也不重复了