1
我想要根據CASE結果來加入表格。基本上,我想檢查我是否是發件人,如果不是,我想從用戶數據庫中檢索發件人的姓名。如果我是發件人,我想從users表中檢索收件人姓名。在一個LEFT JOIN語句中使用CASE結果(MySQL)
這裏是我當前的數據庫查詢,這個正確拉動信息,但users.username AS發出者會始終顯示發件人名稱:
SELECT DISTINCT CASE WHEN $userid != senderid THEN senderid ELSE recipients END someid,
users.username AS sendername,
messages.body,
messages.time
FROM messages
LEFT JOIN users ON users.id = messages.senderid
WHERE messages.recipients = $userid
OR messages.senderid = $userid
ORDER BY messages.time
我想這一更改爲以下等價的: LEFT JOIN users ON users.id = someid
其中someid在上述情況下定義。
謝謝!
工作過的魅力!非常感謝Shawn。關於如何將多個收件人系統合併到此的任何想法建議?我編寫了撰寫系統,以便如果我將郵件寫入多個人,收件人字段最終看起來像「,13,2,23,53」,其中內部號碼是收件人的ID(封裝通過逗號)?如果不是沒有問題,我只是開始考慮這個問題 - 希望我能弄明白!非常感謝 - 這是我的主要障礙。 – Walker 2011-04-11 22:35:09