Mysql 如何进行包含基于等于和大于的计数的联接?
我有两个表格来研究同伴反馈对未来贡献的影响。因此,我需要将“ideaproposals”表中的数据连接到“receivedfeedback”表中 这就是我的数据的样子 表1:“接收反馈”Mysql 如何进行包含基于等于和大于的计数的联接?,mysql,join,count,sql-update,where,Mysql,Join,Count,Sql Update,Where,我有两个表格来研究同伴反馈对未来贡献的影响。因此,我需要将“ideaproposals”表中的数据连接到“receivedfeedback”表中 这就是我的数据的样子 表1:“接收反馈” 'user' 'date' henk 2008-04-06 bert 2009-04-09 bert 2009-04-12 albert 2009-04-28 albert 2009-0
'user' 'date'
henk 2008-04-06
bert 2009-04-09
bert 2009-04-12
albert 2009-04-28
albert 2009-08-27
'user' 'date' 'numberoffutureideas'
henk 2008-04-06 0
bert 2009-04-09 0
bert 2009-04-12 0
albert 2009-04-28 2
albert 2009-08-27 1
表2:“理想建议”
'user' 'date'
henk 2008-03-04
bert 2009-04-06
albert 2009-04-26
albert 2009-08-24
albert 2009-09-18
我想在表1中添加一个额外的列:“receivedfeedback”,它统计表2中未来创意提案的数量:“ideaproposals”,从而考虑表1中每一行的“date”:receivedfeedback,以及与“user”的匹配,这样它只统计晚于起始日期的行数表1:“接收反馈”。结果应该是,
表1:“接收反馈”
'user' 'date'
henk 2008-04-06
bert 2009-04-09
bert 2009-04-12
albert 2009-04-28
albert 2009-08-27
'user' 'date' 'numberoffutureideas'
henk 2008-04-06 0
bert 2009-04-09 0
bert 2009-04-12 0
albert 2009-04-28 2
albert 2009-08-27 1
我提出的代码如下所示,但我认为条件不应该在连接级别上,而应该在计算级别上。通过运行此查询,结果为idea提案的总量或空值:
SELECT * FROM receivedfeedback AS a
LEFT JOIN (
SELECT count(ideaproposals.date) as numberoffutureideas, ideaproposals.user, ideaproposals.date
FROM ideaproposals
GROUP BY ideaproposals.user
) AS b
ON a.user = b.user AND a.date < b.date
更新还没有包括在内,因为我想先测试连接的结果。当然,这在建议中是受欢迎的
如有任何建议,我们将不胜感激 更新尚未包括在内。“但愿如此。”草莓,我不知道如何解释你的评论。但是,你是说更新功能对于所有的工作都是必不可少的吗?我的建议正好相反。一般来说,存储可以轻松从其他“动态”数据中派生的数据是一种不好的做法。在select中获得结果的一种简单方法:-我不想让它在一个查询中更新它,因为MySQL不允许在不使用复杂子查询(例如@Arie)的情况下更新您选择的表,谢谢您的评论。这给出了正确的结果。我可以导出它们并创建一个新的数据库,而不是进行更新。