MySQL组合具有相同名称的列中的数据

时间:2013-06-11 05:02:30

标签: mysql

我有两个不同的表,每个表都有一个具有相同名称的列(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是不正确的方法吗?

2 个答案:

答案 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