我正在建立一个类似于系统的Facebook线程。
我的问题是当conv_fromid
或conv_toid
与登录的用户ID相同时,
它打印错误的用户名。所以我正在寻找某种切换方法。我不知道你/我是否可以使用sql案例?
基本上问题是:
我的要求:
SELECT * FROM pub_conversations a
INNER JOIN pub_users b
ON a.conv_toid = b.user_id
WHERE conv_fromid ='". get_uid() ."'
OR conv_toid='". get_uid() ."'
那么输出应该是什么,是登录用户与之对话的所有用户的列表
答案 0 :(得分:1)
SELECT * FROM pub_conversations a
INNER JOIN pub_users b
ON a.conv_toid = b.user_id AND conv_fromid ='". get_uid() ."'
OR a.conv_toid='". get_uid() ."'
我不确定今晚是否有大脑融化:
SELECT * FROM pub_conversations a
INNER JOIN pub_users b
ON a.conv_toid = b.user_id AND conv_fromid ='". get_uid() ."'
OR a.conv_toid='". get_uid() ."' AND conv_fromid != b.user_id
SELECT * FROM pub_conversations a
INNER JOIN pub_users b
ON b.user_id =(
CASE
WHEN `conv_fromid`='". get_uid() ."' THEN `conv_toid`
WHEN `conv_toid`='". get_uid() ."' THEN `conv_fromid` ELSE -1
END
)
答案 1 :(得分:0)
结束使用
SELECT * FROM pub_users a, pub_conversations b
WHERE (CASE WHEN b.conv_fromid = ". get_uid() ." THEN b.conv_toid ELSE b.conv_fromid END) = a.user_id
非常感谢您的时间:)