假设您有一个def huge (prg):
return list (prg (count = 16, limit = 7, points = 12))
print (timeit ('huge (dist2)', number = 1, globals = globals ()))
# 68.06868170504458
print (len (huge (dist2)))
# 17321844
表和一个users
表。 friends表格包含以下列
friends
我希望能够从user_id, friend_id
表中获取所有用户并迭代它们以获取他们的朋友而不进行另一次数据库调用...有没有办法做到这一点?
如果我有一个包含以下列的users
表
users
我可以得到一个用户并做一些事情
id, username
但我希望能够做到这一点
$result->username ... or $result->id
有没有办法以某种方式使用SQL查询添加这个“假”$result->friends
属性?
答案 0 :(得分:1)
要以逗号分隔列表的形式获取每个用户的朋友,可以在MySql中使用GROUP_CONCAT函数。我在这里有一个左连接来获取users
表中的所有行,如果你只想要有朋友的用户,可以使用普通连接。
SELECT u.id, u.username, GROUP_CONCAT(f.friend_id)
FROM users u
LEFT JOIN friends f ON u.id = f.user_id
GROUP BY u.id, u.username
答案 1 :(得分:0)
你有没有尝试过JOIN它可以完成这项工作
SELECT u.username,f.friend_id FROM users u LEFT JOIN friends f ON u.user_id = f.user_id
或者您执行以下操作
SELECT u.username,f.friend_id FROM users u,friends f WHERE u.user_id = f.user_id