从没有按日期排序的公共列的两个表中打印结果
Posted
技术标签:
【中文标题】从没有按日期排序的公共列的两个表中打印结果【英文标题】:Print results from two tables with no common columns ordered by date 【发布时间】:2014-12-12 13:31:53 【问题描述】:这是我上次尝试的。
(
SELECT
`offers`.`id` AS `offer`, `offers`.`date`
from `offers`
WHERE `offers`.`expired`='0'
ORDER BY `offers`.`date` DESC LIMIT 10
)
UNION ALL
(
SELECT
`vlog`.`video`,
`vlog`.`updated`
from `vlog`
ORDER BY `vlog`.`date` DESC LIMIT 10
)
为简单起见,我只有两列。我需要按日期对它们进行排序(与上面的代码提供的结果不同)并显示哪个是报价,哪个是视频。如果没有链接表的列,这可能吗?
【问题讨论】:
【参考方案1】:我假设 video.video
是一个 ID,因为它与顶部查询中的 id
列对齐。您可以在两个查询中选择一个文字字符串来指示它来自哪个查询:
SQL Fiddle
SELECT
'offer' AS type,
id,
date
FROM
offers
WHERE
expired = 0
UNION
SELECT
'video' AS type,
video AS id,
updated AS date
FROM
vlog
ORDER BY
date
【讨论】:
谢谢,“类型”是知道哪个是哪个的完美方式。但是,工会仍在打印所有视频,然后是所有优惠。 等等,完美!一起谢谢大家。我会接受你的回答。如果我还有其他事情要做,请给我留言。再次感谢。以上是关于从没有按日期排序的公共列的两个表中打印结果的主要内容,如果未能解决你的问题,请参考以下文章
Oracle:将两个表与一个公共列加上第二个表中的一个附加列(最新生效日期)连接以选择其他列
JZ3.从尾到头打印链表;JZ14.链表中倒数第K个节点;JZ15.反转链表;JZ16.合并两个有序链表;JZ36.两个链表的第一个公共节点;JZ55.链表中环的入口节点;JZ56.删除链表中重复节点