1

threadid でグループ化され、last_activity で並べ替えられたメッセージとチャット テーブルを結合しようとしています。UNION を使用しようとしたとき、並べ替えに問題があったため、結合の方がうまくいくと思います。構文に問題があり、ガイダンスを期待していました。以下は、私が使用している2つの選択です。どんな助けでも大歓迎です。

メッセージ テーブルから選択します。

mysql> select threadid, uidto, uidfrom, last_activity, last_message from messages group by threadid order by last_activity DESC;
+----------+-------+---------+---------------------+------------------+
| threadid | uidto | uidfrom | last_activity       | last_message     |
+----------+-------+---------+---------------------+------------------+
|        2 |     2 |       1 | 2013-09-06 22:59:38 | blurred lines... |
|        1 |     9 |       1 | 2013-09-06 22:49:16 | kisses!          |
+----------+-------+---------+---------------------+------------------+
2 rows in set (0.00 sec)

チャットテーブルから選択:

mysql> select threadid, uidto, uidfrom, last_activity, last_message from chat group by threadid order by last_activity DESC;
+----------+-------+---------+---------------------+--------------+
| threadid | uidto | uidfrom | last_activity       | last_message |
+----------+-------+---------+---------------------+--------------+
|        2 |     2 |       1 | 2013-09-06 23:03:27 | danke        |
|        1 |     1 |       9 | 2013-09-06 22:30:34 | much         |
+----------+-------+---------+---------------------+--------------+
2 rows in set (0.00 sec)
4

1 に答える 1

0
select m.threadid, m.uidto, m.uidfrom, m.last_activity, m.last_message,
c.threadid, c.uidto, c.uidfrom, c.last_activity, c.last_message
FROM messages m
JOIN chat c on m.threadid=c.threadid 
GROUP by threadid ORDER BY last_message


(select m.threadid, m.uidto, m.uidfrom, m.last_activity, m.last_message FROM messages m
UNION ALL
select c.threadid, c.uidto, c.uidfrom, c.last_activity, c.last_message FROM chat c)
GROUP by threadid ORDER BY last_message
于 2013-09-06T23:58:27.900 に答える