我正在尝试创建一个更新查询,并且在获取正确的语法方面进展甚微。以下查询正在运行:
SELECT t.Index1, t.Index2, COUNT( m.EventType )
FROM Table t
LEFT JOIN MEvents m ON
(m.Index1 = t.Index1 AND
m.Index2 = t.Index2 AND
(m.EventType = 'A' OR m.EventType = 'B')
)
WHERE (t.SpecialEventCount IS NULL)
GROUP BY t.Index1, t.Index2
它创建一个三元组的列表Index1,Index2,EventCounts。仅在t.SpecialEventCount为NULL的情况下才这样做。我尝试编写的更新查询应将此SpecialEventCount设置为该计数,即上述查询中的COUNT(m.EventType)。此数字可以是0或任何正数(因此为左联接)。索引1和索引2在一起在表t中是唯一的,它们用于标识MEvent中的事件。
如何将选择查询修改为更新查询?即像
UPDATE Table SET SpecialEventCount=COUNT(m.EventType).....
但是我对放置在什么位置上的东西感到困惑,并以许多不同的猜测失败了。
我认为这(Index1, Index2)
是对的唯一键Table
,否则我希望引用t.SpecialEventCount
会导致错误。
编辑查询以使用子查询,因为它无法使用 GROUP BY
UPDATE
Table AS t
LEFT JOIN (
SELECT
Index1,
Index2,
COUNT(EventType) AS NumEvents
FROM
MEvents
WHERE
EventType = 'A' OR EventType = 'B'
GROUP BY
Index1,
Index2
) AS m ON
m.Index1 = t.Index1 AND
m.Index2 = t.Index2
SET
t.SpecialEventCount = m.NumEvents
WHERE
t.SpecialEventCount IS NULL
问题内容: 我有两张桌子。表A列出了员工姓名。表B是一个复杂的表,其中包含有关员工打来的电话的信息。 我的目标是制作一个包含“名称”和“ callCount”列的表。我的目标是“左加入”和“分组依据”,但是我一直想念没有打过电话的员工。我怎样才能只保留名称并在其中放置零? 也许我很亲密,有人可以指出我的错字吗?在此先感谢您的帮助,以下是SQL: 问题答案: 这是一个JOIN而非NULL问题:您的过
我正在使用spring data JPA,我想在我的存储库中编写一个SQL查询。 我有一个下面的SQL查询(注意左边的连接): 我想在我的机构存储库中执行它,如下所示: 我想要的内容:(在此查询中,id设置为1,用于表示目的) 我看过很多这样的问题和答案(比如这一个),但我还没能找到答案。 那么,我如何编写这个查询,以便得到我想要的东西呢? 我得到了一个例外: mysqlsyntaxerrorex
问题内容: 我有两个带有以下字段的表 我需要编写一个查询,其中提供了雇员的详细信息,雇员获得加薪的次数,最大加薪金额的值以及该加薪的日期。这是我到目前为止所拥有的: 除了授予最高增加额的日期外,这正确地给出了所有要求。我尝试了以下方法,但均未成功: 这给出了错误“组功能的无效使用”。有人知道我在做什么错吗? 问题答案: 您不能在where子句中执行此操作,无论是在联接条件下使用还是在联接条件下执行
问题内容: 这是我的namedquery: @NamedQuery(name =“ User.findOneWithLists”,查询=“从用户u中选择u” +“左联接FEACH u.aTemplates” +“左联接FE.bTemplates” +“左联接FE.bp” +“左JOIN FETCH u.aCredentials“ +” LEFT JOIN FETCH u.st(st.deleted
有没有一种方法,我可以创建PHP和MySQLi CRUD与左联接表。目前,我有4个表-费用,付款,班级和学生。用户应该能够创建、编辑和删除付款表中的数据。但是,付款的行是有限的-(payments_id,student_id,payment_date,payment_amount和fee_id)。因此,我希望用户能够选择user firstname而不是student_id。
问题内容: 我绝对是SQL的新手,我一直在努力用Postgresql中的以下表结构编写一个复杂的查询: 查询的目的是获取每个用户的报告类型数量,并将其显示在一列中。有三种不同类型的报告。 使用group-by的简单查询将解决问题,但将其显示在不同的行中: 问题答案: