我有两个不同的表,每个表都有一个具有相同名称的列(is_featured)。我正在尝试从这两个相同的'is_featured'列中选择并显示item_name,并按日期desc排序。
视频
item_name | is_featured | date | item_active
item a | yes | 1-1-13 | 1
item b | no | 1-13-13 | 1
item c | yes | 1-3-13 | 1
照片
item_name | is_featured | date | item_active
item d | no | 2-1-13 | 1
item e | no | 1-2-13 | 1
item f | yes | 1-19-13 | 1
我尝试使用这两个表的UNION查询,但我无法弄清楚如何按日期对组合结果进行排序。
(SELECT item_name FROM Videos WHERE item_active=1 ORDER BY date DESC)
UNION
(SELECT item_name FROM Photos WHERE item_active=1 ORDER BY date DESC)
我错过了什么? UNION是不正确的方法吗?
答案 0 :(得分:2)
您需要在创建联合后进行排序。
SELECT *
FROM (SELECT item_name, date
FROM Videos
WHERE item_active = 1
UNION
SELECT item_name, date
FROM Photos
WHERE item_active = 1) x
ORDER BY date DESC
答案 1 :(得分:2)
我不明白你的整体问题,但如果排序只是问题,那么试试: -
select item_name,date from (
(SELECT item_name, data FROM Videos WHERE item_active=1 )
UNION
(SELECT item_name, date FROM Photos WHERE item_active=1 )
) a
order by a.date desc