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