MySQL ORDER BY不同的表列但是

时间:2017-01-02 02:06:55

标签: php mysql sql-order-by

我一直在苦苦挣扎,而且它非常复杂所以请关注,因为它甚至很难解释。

我有一个表朋友的列:

id, friend1, friend2, since

我希望显示所有用户的朋友按该用户的活动从不同的表格中排序(表名: accinfo ,列:{{1其中lastact的值是php时间。

问题在于我不知道哪个列是朋友......可能是lastactfriend1但这取决于......  我怎么能找出哪个列是朋友的名字而不是用户的名字?我显然需要在SQL本身中检查它,以便按最新活动排序。谢谢。

表:

friend2

2 个答案:

答案 0 :(得分:1)

一种方法是条件连接:

select f.*, ai.lasact
from friends f join
     accinfo ai
     on (ai.userid = f.friend1 and friend2 = $userid) or
        (ai.userid = f.friend2 and friend1 = $userid)
where $userid in (f.friend1, f.friend2)
order by lastacct desc;

答案 1 :(得分:1)

试试这个,

SELECT acf.username FROM friends fds, accinfo acf WHERE (acf.username=fds.friend1 OR acf.username=fds.frien2) ORDER BY acf.lastact DESC