在一個小型聊天服務中,兩個用戶有一個共同的聊天。 此SQL選擇您與之聊天的用戶列表。選擇不同並統計其他表格
SELECT DISTINCT user.user_id, user.username
FROM user
INNER JOIN message
ON user.user_id = message.owner_user_id OR user.user_id = message.to_user_id
WHERE message.owner_user_id = :activeUserId
OR message.to_user_id = :activeUserId
ORDER BY message.date_time DESC
我還需要獲取兩個用戶之間發送的消息的數量。輸出是一個「文件夾」列表,活動用戶與每個用戶進行聊天。每個文件夾都包含用戶的用戶名和聊天消息的數量(活動用戶的消息數量與特定用戶的總數,以及特定用戶的消息數量)。
row1: (active user and JohnSmith have 33 messsages in their common chat.)
user_id = 1;
username = 'JohnSmith';
message_count = 33;
row2: (active user and Johnny have 43 messsages in their common chat.)
user_id = 2;
username = 'Johnny';
message_count = 43;
這怎麼能在一個SQL語句中完成?
我得到這個:錯誤。 SQLSTATE [21000]:基數違規:1241操作數應該包含1列 – user1121487
我已經更新了答案,但是,我認爲@EdGibbs的答案會更有益 –