gpt4 book ai didi

mysql - 选择包含用户信息和媒体的帖子

转载 作者:行者123 更新时间:2023-11-29 07:19:22 24 4
gpt4 key购买 nike

我需要做以下事情:

  • 在帖子表中选择最新的帖子(例如最后 10 个)
  • 加入用户表中的用户信息
  • 在 media 表中加入用户的媒体头像,其中 type = avatar 和 media_author = user.id
  • 加入帖子的媒体(每个帖子从 1 到 4)

下一步我需要过滤 friend 的帖子并使用检索数据的用户的首选标签发布。我认为所有这些不能在一个查询中完成,对吧?

在最终的解决方案中我需要:

  • 得到职位
  • 根据一些规则(是 friend ?有标签?等等)对帖子进行评分和排序
  • 为订购的帖子提供用户信息和帖子信息(如计数等)

也许更好的解决方案是:仅选择帖子,并为每个帖子执行两次查询以检索用户和媒体数据?

现在这是我用于单个帖子的查询:

SELECT posts.id, posts.user_id, posts.privacy, posts.type, posts.published, posts.language, 
posts.content, posts.date, posts.entity_map, users.username, media.media_url
FROM posts
LEFT JOIN (SELECT * FROM users) users
ON (users.id = posts.user_id )
LEFT JOIN (SELECT * FROM media ORDER BY media.id DESC) media
ON (media.media_author = posts.user_id AND media.media_type = 'avatar')
WHERE posts.id = ?

SELECT * FROM media WHERE media_parent = ?

做 20 个查询来检索 10 个帖子的列表有意义吗?

这里是表格结构:

tbl posts

id
content
date
entity_map
language
privacy
published
raw_content
type
user_id
tbl users

id
name
username
tbl media

id
media_author
media_date
media_parent
media_status
media_type
media_url
tbl like/love

te be defined, but I think a table with:
id
id_from
id_to
type (like/love/other)

最佳答案

这将为您提供最新的 10 个帖子。

SELECT posts.id, posts.user_id, posts.privacy, posts.type, posts.published, posts.language, 
posts.content, posts.date, posts.entity_map, users.username, media.media_url
FROM posts
LEFT JOIN (SELECT * FROM users) users
ON (users.id = posts.user_id )
LEFT JOIN (SELECT * FROM media ORDER BY media.id DESC) media
ON (media.media_author = posts.user_id AND media.media_type = 'avatar')
Order By post.date desc
limit 10

要获取媒体,您必须对每个帖子进行查询。因为,sql 不像 mongodb 那样方便引用。

关于mysql - 选择包含用户信息和媒体的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57107894/

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