아마 피부에 여러 가지 방법이 특정 고양이가 있습니다. 여기
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(msg_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,msg_from INT NOT NULL
,msg_to INT NOT NULL
,msg VARCHAR(12) NOT NULL
);
INSERT INTO my_table VALUES
(1 ,2 ,3 ,'Hi'),
(2 ,2 ,3 ,'Hi'),
(3 ,2 ,4 ,'Hi'),
(4 ,3 ,2 ,'Hi'),
(5 ,3 ,4 ,'Hi'),
(6 ,4 ,2 ,'Hi'),
(7 ,3 ,2 ,'HiBye'),
(8 ,1 ,2 ,'Hi'),
(9 ,2 ,4 ,'Hi'),
(10 ,3 ,2 ,'Hi');
SELECT * FROM my_table;
+--------+----------+--------+-------+
| msg_id | msg_from | msg_to | msg |
+--------+----------+--------+-------+
| 1 | 2 | 3 | Hi |
| 2 | 2 | 3 | Hi |
| 3 | 2 | 4 | Hi |
| 4 | 3 | 2 | Hi |
| 5 | 3 | 4 | Hi |
| 6 | 4 | 2 | Hi |
| 7 | 3 | 2 | HiBye |
| 8 | 1 | 2 | Hi |
| 9 | 2 | 4 | Hi |
| 10 | 3 | 2 | Hi |
+--------+----------+--------+-------+
10 rows in set (0.00 sec)
SELECT user_id
, SUM(status = 'sent') s
, SUM(status = 'received') r
FROM
( SELECT msg_id,msg_to user_id,'sent' status FROM my_table WHERE msg_from = 2
UNION
SELECT msg_id,msg_from,'received' FROM my_table WHERE msg_to = 2
) x
WHERE user_id IN(1,3,4)
GROUP
BY user_id;
+---------+------+------+
| user_id | s | r |
+---------+------+------+
| 1 | 0 | 1 |
| 3 | 2 | 3 |
| 4 | 2 | 1 |
+---------+------+------+
죄송 편집 질문 @Strawberry –
예 @Strawberry 오타 –