0

それぞれ「日付」という名前の列を持つ2つのテーブルがあります。それらを結合したいのですが、一般的にフォーマットされた日付列で並べ替えます。

たとえば、ここに私の 2 つのテーブルがあります。

Birthdays
+--------+---------+
| Date   | Name    |
+--------+---------+
| 03/10  | John    |
+--------+---------+
| 09/24  | Sara    |
+--------+---------+

Holidays
+--------+----------+
| Date   | Title    |
+--------+----------+
| 07/04  | July 4th |
+--------+----------+
| 12/25  | Xmas     |
+--------+----------+

私がやりたいのは、それらを結合して日付で並べ替えることです。通常の 2 列の並べ替えは機能しません。探しているテーブルの Date 列を指定しないと、「あいまいな」エラーが発生するためです。他の。

そのサンプルデータを使用して必要な出力は次のとおりです。

+--------+---------+----------+
| Date   | Name    | Title    |
+--------+---------+----------+
| 03/10  | John    |          |
+--------+---------+----------+
| 09/24  | Sara    |          |
+--------+---------+----------+
| 07/04  |         | July 4th |
+--------+---------+----------+
| 12/25  |         | Xmas     |
+--------+---------+----------+

これを行う方法についてのアドバイスは大歓迎です、ありがとう!

4

3 に答える 3

0

これを試して。

select date, name, title from (
select Date, name, '' as Title
  from Birthdays
 union 
select Date, '', title
  from Holidays ) table 
 order by date
于 2013-11-14T19:48:02.167 に答える
0

UNIONステートメントを使用する

SELECT * FROM (
    SELECT `Date`, 'Birthday' AS `Type`, `Name` FROM `Birthday`
    UNION
    SELECT `Date`, 'Holiday' AS `Type`, `Title` FROM `Holiday`
) AS `AllSpecialDays` ORDER BY `Date`
于 2013-11-14T19:49:18.170 に答える