製作消息傳遞系統並在收件箱頁面上工作。MySQL:將列值分配給變量
收件箱頁面以「線程」的方式組織,我想顯示兩方之間的最新通信。想一想Facebook的收件箱(左側部分),它顯示了您發送消息的方式或對方是否發送了最新消息。
這是我當前的查詢:
SELECT
m.*,
s.*,
c.*,
u.*,
CASE
WHEN m.uid_recipient <> 292 THEN @user_id := m.uid_recipient
WHEN m.uid_sender <> 292 THEN @user_id := m.uid_sender
END
FROM messages m
JOIN signup s ON s.uid = @user_id
LEFT JOIN companies c ON c.uid = s.uid
LEFT JOIN users u ON u.uid = s.uid
WHERE COALESCE(u.uid, c.uid) IS NOT NULL
AND (m.uid_recipient = 292 AND deleted_recipient = '0')
OR (m.uid_sender = 292 AND deleted_sender = '0')
ORDER BY datetime DESC
該查詢運行,但返回一個空的結果集,它應該返回3個結果。
消息與發送者的ID和收件人的ID一起存在於表格中。現在我正在嘗試將另一方的信息加入到行中。因此,我的case語句會評估收件人ID是否是當前用戶的ID,如果不是,則應將@user_id變量設置爲另一方的ID,以便可以用來將對方的信息加入該行。
消息表看起來像這樣(相關列):
----------------------------------------------
|uid_sender |uid_recipient |message |
----------------------------------------------
|292 |1040 |Test 3 |
----------------------------------------------
|1040 |292 |Test reply |
----------------------------------------------
|292 |1040 |First msg |
----------------------------------------------
我傾向於認爲,列的值不是分配給變量,但我不知道我怎麼能調試此查詢返回分配給@user_id的值。無論如何轉儲在MySQL查詢中的值?
任何幫助表示讚賞。
謝謝。
表結構和樣本數據? –