我有一个查询...
SELECT m.msgFrom, m.msgTo, m.msgID, m.subject, m.dateTime, a.username
FROM mailbox m
JOIN accounts a ON (m.msgFrom = a.id)
WHERE msgTo = $user
OR msgFrom = $user
AND parentID = 0
ORDER BY dateTime DESC
LIMIT 250
是否可以更改此查询,以便 ON
根据 msgTo
或 msgFrom
的值而变化。
我有一个用户变量。如果用户变量等于msgTo
,则获取username
,其中id
等于msgFrom
。如果用户变量等于msgFrom
,则获取username
,其中id
等于msgTo
?
我希望我解释得足够好?
最佳答案
您应该能够在 ON
子句中使用 IF
语句。这将与对方用户的帐户连接。 (即,如果消息来自$user
,则用户名
将用于接收用户,如果消息发送至 $user
,则 username
将用于发送用户。)
SELECT m.msgFrom, m.msgTo, m.msgID, m.subject, m.dateTime, a.username
FROM mailbox m JOIN accounts a ON a.id=IF(msgTo=$user, msgFrom, msgTo)
WHERE msgTo = $user OR msgFrom = $user AND parentID = 0
ORDER BY dateTime DESC LIMIT 250
关于mysql - 我该如何解决这个mysql?用php还是mysql做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8948512/