【发布时间】:2013-11-18 11:51:29
【问题描述】:
那里有 2 个 mysql 表 users(id,name,city) 和friend_list(id,userid,friend,status)。
现在我需要从friend_list 表中随机获取三个朋友,并从users 表中获取他们的姓名。
Friend_list table
id | userid |friend |status
1 | 1 | 2 | friends
2 | 3 | 1 | friends
3 | 2 | 3 | friends
users table:
id | name
1 | xxx
2 | yyy
3 | zzz
我需要这样的查询。
SELECT f.*,u.name FROM friend_list f,users u WHERE (f.userid = 1 or f.friend = 1) AND f.status = 'friends' AND f.userid = u.id AND f.order by RAND() limit 3
但例如:它应该在 userid 列和朋友列中选择 1。
我试图在不使用 JOIN 的情况下实现它
【问题讨论】:
-
你试过用rand()函数加入吗??
-
@rockieB :我使用 SELECT f.*,u.name FROM friend_list f,users u WHERE (f.userid = 1 or f.friend = 1) AND f.status = 'friends' AND f.userid = u.id AND f.order by RAND() limit 3 ` 但问题是从用户表中选择名称。如何将选定的行与用户表(f.userid = u.id)和(f.friend = u.id)的id列匹配?