gpt4 book ai didi

MySQL 嵌套选择 : am I able to use any data from outer select?

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:02 24 4
gpt4 key购买 nike

假设我有下表users:

id name
1 John
2 Mike
3 Max

和表posts

id author_id date       title
1 1 2014-12-12 Post 2
2 1 2014-12-10 Post 1
3 2 2014-10-01 Lorem ipsum
...and so on

我想要一个包含以下数据的查询:

  • 用户名

  • 上周用户的帖子数量

  • 上个月用户的帖子数

我可以只为每个单独的用户(在以下示例中使用 id 1)执行此操作:

SELECT
`name`,
(SELECT COUNT(*) FROM `posts`
WHERE
`author` = 1 AND
UNIX_TIMESTAMP()-UNIX_TIMESTAMP(`date`) < 7*24*3600) AS `posts7`,
(SELECT COUNT(*) FROM `posts`
WHERE
`author` = 1 AND
UNIX_TIMESTAMP()-UNIX_TIMESTAMP(`date`) < 30*24*3600) AS `posts30`
FROM `users`
WHERE `id` = 1

如果我可以在内部和外部 SELECT 之间交换数据,我怀疑 MySQL 将允许在一个查询中为所有用户执行此操作。我可能用错了词,但我真的希望这里的人能理解我的需求,我会得到一些帮助。

最佳答案

这不是最终的 SQL,但为您提供了关键...

Select name, sum(case when datewithin7 then 1 else 0 end) as posts7, 
sum(case when datewithin30 then 1 else 0 end) as posts30
from name
left join posts on name.id = posts.nameid
GROUP BY name.

请注意,您需要分组依据。但我没有时间将案例陈述放在一起...

关于MySQL 嵌套选择 : am I able to use any data from outer select?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511781/

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