0
我有兩個表:如何COUNT條件而不同的連接MySQL?
mysql> DESCRIBE swaps;
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user1_id | int(11) | NO | | NULL | |
| user2_id | int(11) | NO | | NULL | |
| hasto | int(11) | NO | | NULL | |
| requested | datetime | NO | | NULL | |
| accepted | datetime | YES | | NULL | |
| swapped1 | datetime | YES | | NULL | |
| swapped2 | datetime | YES | | NULL | |
| rejected | datetime | YES | | NULL | |
| rejected_by | int(11) | YES | | NULL | |
+-------------+----------+------+-----+---------+----------------+
mysql> DESCRIBE messages;
+-----------+----------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------+------+-----+-------------------+----------------+
| msg_id | int(11) | NO | PRI | NULL | auto_increment |
| sender_id | int(11) | NO | | NULL | |
| msg | text | NO | | NULL | |
| msg_time | datetime | NO | | CURRENT_TIMESTAMP | |
| swap_id | int(11) | NO | | NULL | |
| seen | datetime | YES | | NULL | |
+-----------+----------+------+-----+-------------------+----------------+
和查詢,我從this問題
SELECT s.*, m.*
FROM swaps as s
JOIN messages as m
ON (s.id= m.swap_id AND m.msg_time=
(SELECT MAX(msg_time) FROM messages WHERE messages.swap_id = s.id));
調整,結果我單排,每交換和這個交換中最後發送消息的信息。我想添加沒有看到的消息的計數(m.seen IS NULL)。
我嘗試了不同的方法,但總是得到錯誤。我想要的是在相應的交換中添加消息數量,並將IS NULL視爲結果集。將不勝感激任何建議。
是的,這是一個很好的開始,但我得到所有看不見的消息每個交換。我需要添加條件在哪裏swap_id = ...但我沒有swap_id。它應該加入。 –
哦,我錯過了你的代碼下的評論。似乎我沒有問這個問題 - 我需要給定交換的相關條款 –