gpt4 book ai didi

php - 很多查询来提取用户照片和他们的评论。 (蛋糕PHP)

转载 作者:行者123 更新时间:2023-11-29 06:23:26 24 4
gpt4 key购买 nike

我想做的是提取个人资料信息和个人资料的评论。我得到了预期的一切。没有返回错误,数组格式完美。我关心的是运行的查询。它对每个 ID 运行一个查询来获取其照片(查询的开头在下面代码的注释中注明)。我想这是通过 user_id 获取照片的唯一方法?全部在单独的查询中?有更好的办法吗?

我正在想象一个有 40 多条评论的个人资料,想象起来很可怕。这就是 memcached 的用武之地吗?

$profile = $this->Profile->find('first', array(
'conditions' => array('Profile.url' => $url),
'contain' => array(
'User' => array(
'fields' => array(
'User.id','User.name'
),
'Photo' => array(
'fields' => array(
'Photo.thumbnail','Photo.image'
)
)
),
'Comment' => array(
'User' => array(
'fields' => array(
'User.name'
),
'Photo' => array( // right here
'fields' => array(
'Photo.thumbnail'
)
)
)
)
)
));

编辑:

我显然有一个用户表和一个评论表。我还有一个照片表,用于存储用户图像的 URL,外键 = user_id。因此,当我查询特定个人资料中的所有评论(其为 Comment.user_id)时,我还需要通过其 user_id 从照片表中获取 Photo.thumbnail。

最佳答案

使用 LEFT JOIN 可以使其更快。

已编辑代码已被编辑,以更好地回答问题(需要两个左连接 - 不是一个)。

SELECT c.text, i.profiles, p.photo_url
FROM comments AS c
LEFT JOIN profiles AS i on c.profile_id = i.id
LEFT JOIN photos AS p ON i.id = p.user_id
WHERE c.post_id = 32
LIMIT 20

这只是一个通用 SQL,但会:

  1. 撤回第 32 条下面的所有评论(在评论表中)
  2. 左连接将评论发布者 ID 与评论相匹配的个人资料表
  3. 提取前 20 条评论

只需一次查询,您就可以提取所有 30 条评论及其相关个人资料。

希望对你有帮助!

关于php - 很多查询来提取用户照片和他们的评论。 (蛋糕PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com