我一直在苦苦挣扎,而且它非常复杂所以请关注,因为它甚至很难解释。
我有一个表朋友的列:
id, friend1, friend2, since
我希望显示所有用户的朋友按该用户的活动从不同的表格中排序(表名: accinfo ,列:{{1其中lastact
的值是php时间。
问题在于我不知道哪个列是朋友......可能是lastact
或friend1
但这取决于......
我怎么能找出哪个列是朋友的名字而不是用户的名字?我显然需要在SQL本身中检查它,以便按最新活动排序。谢谢。
表:
friend2
答案 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