我想更新一个表以指示某些行是其他行的父表,因此我在表中添加了“父代”列。以下查询查找所有父母:
SELECT ca1.id, ca2.id
FROM contactassociations ca1
JOIN contactassociations ca2 ON (ca1.contactid = ca2.contactid)
where ca1.entitytable = 'EMPLOYER' AND
ca2.entitytable = 'CLIENT';
但是当我尝试修改该语法以进行更新时,它不起作用:
UPDATE contactassociations ca1
SET ca1.parentid = ca2.id
JOIN contactassociations ca2 ON (ca1.contactid = ca2.contactid)
WHERE ca1.entitytable = 'EMPLOYER' AND ca2.entitytable = 'CLIENT';
我得到:
Error starting at line 6 in command:
UPDATE contactassociations ca1
SET ca1.parentid = ca2.id
JOIN contactassociations ca2 ON (ca1.contactid = ca2.contactid)
WHERE ca1.entitytable = 'EMPLOYER' AND ca2.entitytable = 'CLIENT'
Error at Command Line:7 Column:28
Error report:
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
请注意,第7行第28列是“ SET”行的结尾。
Oracle不支持JOIN
语句中的子句UPDATE
。
用这个:
MERGE
INTO contactassociations ca1
USING contactassociations ca2
ON (
ca1.contactid = ca2.contactid
AND ca1.entitytable = 'EMPLOYER'
AND ca2.entitytable = 'CLIENT'
)
WHEN MATCHED THEN
UPDATE
SET parentid = ca2.id
问题内容: 如何更新子查询中也存在的表?我必须分两个阶段进行吗?(创建一个临时表-将选定的数据放入其中,然后更新最终表) 我正在尝试使用每个CTN的网络标签更新invoiceLine表。 最终结果将是: invoiceLine 我有以下表格: invoiceLine ctn network 1234 null 2345 null 3456 null terminal ctn network 123
我想对MySQL表中的行求和,然后合并和更新。我正试图在一天内把所有的重复付款加起来。我将发布我现有的查询,但有一些限制。 示例: 预期结果: 我试过这个循环。 问题1.我一次只能更新一个专栏。 问题2。我以编程方式遍历行并更新值,因为如果没有重复的值,则行不会得到更新。我必须写另一个查询来更新。也可以删除现有查询。 问题3。它只适用于两次付款。 在laravel雄辩合并(和)多行和更新中是否有任
问题内容: 在PHP中,我知道这比使用更加安全。但是,我找不到让SQL注入发生的情况的示例。 谁能举一些例子? 问题答案: 基本上,攻击的工作方式是通过在多字节字符的中间放置反斜杠,从而使反斜杠成为有效的多字节序列的一部分而失去其含义。 本文的一般警告: 对于任何以有效多字节字符结尾的字符编码,这种攻击都是可能的,因为 可以诱使他们创建有效的多字节字符,而不是转义后面的单引号。UTF-8不适合此描
问题内容: 我有一张桌子 我想得到所有薪水高于A薪水的员工。我不想使用任何嵌套或子查询。在一次采访中有人问过,提示是使用自我加入。我真的不知道如何实现相同的目标。 问题答案: 使用自我加入
问题内容: 我正在练习 自我连接 ,这是我编写查询时不了解的事情。 我有桌子 雇员表包含三个记录。 最后一列manager_id是指使Ahmed和Tove成为Ola经理的第一列ID。 如果我这样写查询 结果使艾哈迈德和托夫经理。然而 正确无误,有人可以解释吗? 问题答案: 自联接就像内部联接,其中同一表的两个或更多实例通过公共数据类型的列/字段联接在一起。这种连接(内部连接)根据连接条件给出公共行
我有一张非常复杂的表格,是这样的:- 现在,我需要处理一个查询,该查询应该重复一个行,其中假设p2值对于该特定年份或从2009年、2010年或2011年中的任何年份都不可用,并将最后一列的值作为零放入其中。 所以现在我的数据库看起来应该像- 我试着使用临时表 但它不起作用。有谁能帮我。