嗨,我在下面的表格中记录了活动和分数
Activites
|A_ID |Site | ActivityValue| ActivityName
---------------------------------------------------
|1 | site1 | 7 | ActivityName1
|2 | site1 | 6 | ActivityName2
|2 | site1 | 6 | ActivityName3
|2 | site1 | 6 | ActivityName4
pointsTable
|UserID |RemainderPoints | Active | ActivityName |
------------------------------------------------------
|1 | 10 | TRUE | ActivityName1|
|2 | 5 | TRUE | ActivityName2|
|2 | 5 | TRUE | ActivityName3|
|2 | 5 | TRUE | ActivityName3|
我需要从活动中返回所有记录
SELECT ActivityName FROM activity WHERE `Site`='Site1'
退货
ActivityName1
ActivityName2
ActivityName3
ActivityName4
然后我需要基于来自点表的用户ID对用户点求和
SELECT UserID, ActivityName, Active, SUM( RemainderPoints)
FROM pointstable
WHERE UserID =2
AND Active = 'TRUE' GROUP BY ActivityName
退货
|UserID |RemainderPoints | Active | ActivityName |
-------------------------------------------------------------
|2 | 5 | TRUE | ActivityName2|
|2 | 10 | TRUE | ActivityName3|
一切都很好,但我需要将它们放在一起给用户,即
ActivityName1 = 0
ActivityName2 = 5
ActivityName3 =10
ActivityName4 = 0
有指针吗?
使用外部联接:
select
a.activityName,
coalesce(sum(pt.remainderPoints), 0) points
from
activities a left outer join pointsTable pt on
pt.activityName = a.activityName and pt.UserID = 2
group by a.activityName
或子查询:
select
activities.ActivityName,
coalesce(
(select sum(RemainderPoints) from pointsTable where pointsTable.UserId = 2 and pointsTable.ActivityName = activities.ActivityName)
, 0) points
from
activities
问题内容: table1 (id, name) table2 (id, name) 询问: 问题答案: SELECT t1.name FROM table1 t1 LEFT JOIN table2 t2 ON t2.name = t1.name WHERE t2.name IS NULL 问 :这是怎么回事? 答 :从概念上讲,我们从中选择所有行,并为每一行尝试在其中找到具有相同值的行。如果没有这
我想从Laravel 5.1中其他表中不存在的表中获取所有记录。 我知道如何在核心PHP中做到这一点,它与下面的代码工作正常 模型 但是当我尝试在Laravel中使用以下代码时, 然后它给了我这个错误 调用未定义的方法Illumb\Database\Query\Builder::table()
问题内容: 我有两个看起来像这样的表: 表:案例 id 名称 状态 case_no 表:注意事项 id case_id note_date 注释 我希望能够创建一个查询,以从案例表中获取数据,并仅从注释表中获取案例表中每一行的最新条目。到目前为止,我根本没有运气。 任何指针将不胜感激 问题答案: 这只会返回带有注释的案例: 如果需要所有案例,无论是否附带注释:
本文向大家介绍从列表中排除一些ID记录,并在MySQL中显示其余记录,包括了从列表中排除一些ID记录,并在MySQL中显示其余记录的使用技巧和注意事项,需要的朋友参考一下 要排除记录,请使用MySQL NOT 。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是排除记录的查询- 这将产生以下输出-
问题内容: 假设有两个表: 表A 表B 表之间的联系是 messageID 字段。 我想要一个查询来生成这样的结果,在该查询中,我将所有字段从表A中拉出,并对表B中每条消息的注释数进行计数,如下所示: 我已经尝试过这样的事情: 但这是行不通的。有任何想法吗?似乎应该可以在一个查询中执行此操作。我正在使用MSSQL。谢谢你的帮助。 问题答案: 标量子查询将起作用: 与往常一样,有很多方法可以改变这只
问题内容: 我有以下两个表(在MySQL中): 如何找出哪些电话是由人,他们提出是不是在?所需的输出将是: 问题答案: 有几种不同的方法可以执行此操作,效率各不相同,具体取决于查询优化器的性能以及两个表的相对大小: 这是最简短的陈述,如果您的电话簿很短,则可能是最快的陈述: 或(感谢WOPR) (忽略这一点,正如其他人所说的那样,通常最好只选择所需的列,而不是’ ‘)