我使用以下查询将值插入表A中的一个字段。
insert
into A (name)
values ('abc')
where
A.id=B.code
and B.dept='hr' ;
这个查询对吗? 如果没有,请给我一个正确的方法。
答案 0 :(得分:9)
如果要更改使用UPDATE
子句选择的记录中字段的值,则应使用WHERE
。
答案 1 :(得分:6)
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'
答案 2 :(得分:1)
插入部分应该没问题
insert into A (name) values ('abc')
它实际上取决于您使用where子句和B表引用实现的目的。
答案 3 :(得分:1)
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是第二个表JOIN一起使用LEFT JOIN然后name是列。这就是他想在他的问题上做的事情。
这就是" INSERT SELECT STATEMENT"做。
在执行选择并组合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'