如何使用 where 子句插入
Posted
技术标签:
【中文标题】如何使用 where 子句插入【英文标题】:How to insert with where clause 【发布时间】:2009-02-13 11:15:39 【问题描述】:我正在使用以下查询将值插入到表 A 的一个字段中。
insert
into A (name)
values ('abc')
where
A.id=B.code
and B.dept='hr' ;
这个查询对吗? 如果没有,请给我一个正确的方法。
【问题讨论】:
学业?这是一个奇怪的问题,你没有更多的信息给我们吗? 【参考方案1】:如果您想更改使用WHERE
子句选择的记录中的字段值,您应该使用UPDATE
。
【讨论】:
如果您使用的是那些新奇的数据库之一,则为“upsert”:-)【参考方案2】:MERGE
INTO a
USING (
SELECT *
FROM b
WHERE b.dept = 'hr'
)
ON a.id = b.code
WHEN NOT MATCHED THEN
INSERT (id, name)
VALUES (code, 'abc')
WHEN MATCHED THEN
UPDATE
SET name = 'abc'
【讨论】:
【参考方案3】:插入部分应该没问题
插入 进入A(姓名) 值('abc')这实际上取决于您尝试使用 where 子句和 B 表引用实现的目标。
【讨论】:
【参考方案4】:INSERT INTO A (name)
SELECT name
FROM A as a
LEFT JOIN B as b ON b.id=a.id
WHERE a.id=b.code AND b.dept='hr'
A 是第一个表,然后 B 是第二个表,使用 LEFT JOIN 连接在一起,然后名称是列。这就是他想对他的问题做的事情。
这就是“插入选择语句”的作用。
在进行选择并结合 WHERE 和 JOIN 时可以插入的查询。
INSERT TABLE1 (column1)
SELECT column1
FROM TABLE1 as a
LEFT JOIN TABLE2 as b ON b.column1=a.column1
WHERE a.column2=b.column3 AND b.column4='hr'
【讨论】:
以上是关于如何使用 where 子句插入的主要内容,如果未能解决你的问题,请参考以下文章