0
TABLE 1
id  time1   info
1   110 info1
2   120 info2

TABLE 2
id  time2   info
1   100 info3
2   130 info4

一度に両方のテーブルからデータを取得し、time1 と time2 で並べ替えるにはどうすればよいですか (同じことですが、フィールドの名前は異なります)。

Expected result row ids:
1 // table 2
1 // table 1
2 // table 1
2 // table 2
4

1 に答える 1

2

クエリを使用UNION JOINし、共通の並べ替え列(time1とtime2)に同じ名前を付けて、再結合された結果セット全体を並べ替える必要があります。

(SELECT id, time1 AS time, info FROM table1)
    UNION
(SELECT id, time2 AS time, info FROM table2)
    ORDER BY time

残念ながら、これはテーブルごとに異なるテーブル構造を返すことができないことを意味します。列数などは一致している必要があります。

回避策は次のようになります。

(SELECT id, time1 AS time, info, extra_column FROM table1)
    UNION
(SELECT id, time2 AS time, info, NULL AS extra_column FROM table2)
    ORDER BY time
于 2012-06-28T20:48:33.413 に答える