我正在建立一个af facebook的线程式系统。
我的问题是当conv_fromidconv_toid与登录的用户id相同时,
它打印了错误的用户名。所以我在寻找一种转换方法。我不知道您/我是否可以使用sql case?
基本问题是:
当登录用户id等于convúfromid时,需要基于convútoid加入pubúu用户(不再是convúfromid)
如果登录的用户id等于conv-toid,则需要基于conv-fromid加入pub-u用户。
我的请求:

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() ."'

所以输出结果应该是,登录用户与之对话的所有用户的列表
http://sqlfiddle.com/#!2/feb21

最佳答案

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
)

10-08 14:29