0

これらの2つのテーブルを組み合わせて、1つの列(stamp)で並べ替え、2番目のテーブルのidフィールドをエイリアシングしようとしています。結合、マージを試しましたが、何も機能しないようです。私もそれらをグループ化しようとしていますmm

テーブルnote

  id | mm |   stamp    |
==========================
  1  | 5  | 2009-12-11 |
  2  | 33 | 2010-09-10 |
  3  | 22 | 2011-07-08 |
  4  | 1  | 2012-05-06 |

テーブルnote_admin

  id | mm |   stamp    |
==========================
  1  | 5  | 2009-08-15 |
  2  | 5  | 2011-11-11 |
  3  | 5  | 2012-01-08 |
  4  | 35 | 2012-02-06 |

私がうまくいくと思ったクエリ:

(SELECT * FROM note WHERE mm=5)
UNION
(SELECT id AS a_id, mm, stamp FROM note_admin WHERE mm=5) 
ORDER BY stamp DESC

期待される結果

  id | a_id | mm |   stamp    |
================================
     |   3  | 5  | 2012-01-08 |
     |   2  | 5  | 2011-11-11 |
  1  |      | 5  | 2009-12-11 |
     |   1  | 5  | 2009-08-15 |

これが可能かどうかさえわかりません。これをPHPで並べ替える方法を見つけましたが、mySQLで並べ替えることができればはるかに簡単です。ありがとう。

4

1 に答える 1

0

私はあなたがこれを意味していると思います、同じ4つの列名に注意してください(しかし順序についてはわかりません):

(SELECT a_id as NULL, note.* FROM note WHERE mm=5) UNION (SELECT id AS a_id, NULL as id, mm, stamp FROM note_admin WHERE mm=5) ORDER BY stamp DESC
于 2012-11-16T16:51:17.953 に答える