我有我想要显示像Facebook消息的消息应用程序,它应该由发送者或接收者获取最后发送的消息,我的表布局是这样的:获取用户之间的最后一条消息,如Facebook
messages_tbl
__________________________________________________________________________
|id | user1Fk| user2Fk |subject | user1Delete | user2Delete | dateCreated |
和我user_tbl
_______________________________________
| id | first_name | last_name | image |
我查询
SELECT `id` , `user1Fk` as sender_id,
(SELECT concat(first_name,\" \",last_name)
FROM user_tbl
WHERE user_tbl.id = sender_id
) as senderName,
`user2Fk` as recipient_id ,
(SELECT concat(first_name,\" \",last_name)
FROM user_tbl
WHERE user_tbl.id = recipient_id
) as recipientName,
(SELECT image
FROM user_tbl
WHERE user_tbl.id = sender_id
) as senderImage,
(SELECT image
FROM user_tbl
WHERE user_tbl.id = recipient_id
) as recipientImage,
`subject`, `message`, `user1Delete`, `user2Delete`,
`dateCreated`
FROM `message_tbl`as m1
WHERE dateCreated = (SELECT MAX(m2.dateCreated)
from message_tbl as m2
WHERE (m1.user1Fk = m2.user1Fk
AND m1.user2Fk = m2.user2Fk
OR m1.user1Fk = m2.user2Fk
AND m1.user2Fk = m2.user1Fk
)
) AND ? IN (m1.user1Fk, m1.user2Fk)
ORDER BY dateCreated DESC
此查询工作的大部分,但其缺乏的,我想它来检查,如果由?
比赛user1Fk
定id应该再检查,如果user1Delete
是0或1,如果一个1然后做不显示消息user 1
删除它,与用户2相同,但我想不到的逻辑,任何人都可以帮助我吗?
类似于https://stackoverflow.com/questions/42740768/mysql-distincs-entry-of-two-columns-even-when-switched/42740903#42740903 – Gab
差不多,但我的已经可以选择了,我只需要帮助检查消息是否已被删除,然后返回 –