-2

MySQL データベースに 2 つのテーブルがあります

メッセージ

email           message_id   content   time_sent
test@test.ee    1            aaa       2012-11-01 01:09:47
test@test.ee    2            ddd       2012-11-01 01:18:47

返信

message_id   content  time_sent
1            bbb      2012-11-01 01:12:47
1            ccc      2012-11-01 01:14:47
2            eee      2012-11-01 01:19:47

time_sent 順の返信とマージされた特定の電子メールによるすべてのメッセージを取得する必要があります。
これは完璧です:

email          content  time_sent
test@test.ee   aaa      2012-11-01 01:09:47
               bbb      2012-11-01 01:12:47
               ccc      2012-11-01 01:14:47
test@test.ee   ddd      2012-11-01 01:18:47
               eee      2012-11-01 01:19:47

どこから始めるべきかのヒントでさえ役に立ちます。ありがとう!

4

2 に答える 2

1

このようなものをお探しですか?

SELECT email, content, time_sent
  FROM messages
 UNION ALL
SELECT m.email, r.content, r.time_sent
  FROM replies r JOIN messages m
    ON r.message_id = m.message_id
 ORDER BY email, time_sent 

出力:

| | 電子メール | コンテンツ | TIME_SENT |
|--------------|---------|------------------------ ------|
| | test@test.ee | ああ | 2012 年 11 月 1 日 01:09:47+0000 |
| | test@test.ee | bbb | 2012 年 11 月 1 日 01:12:47+0000 |
| | test@test.ee | ccc | 2012 年 11 月 1 日 01:14:47+0000 |
| | test@test.ee | ddd | 2012 年 11 月 1 日 01:18:47+0000 |
| | test@test.ee | ええ | 2012 年 11 月 1 日 01:19:47+0000 |

これがSQLFiddleのデモです

于 2013-10-22T09:55:20.743 に答える
0
Select email as email,content,time_sent
FROM 
message
UNION
Select '' as email, content,time_sent
FROM
replies
于 2013-10-22T09:43:25.833 に答える