我一直在尝试执行以下操作的不同sql查询:
对于具有table_1的clumn_a中具有field_value的字段的所有表条目,其等于table_2的column_b中的任何字段值,在table_1的id_of_the_other_entry_column中插入table_2中的字段的id。
但是我只能使用SQL而不使用SQL命令以外的任何东西。没有其他编程语言的帮助,这甚至可能吗?如果是这样..任何提示?
编辑: 一个例子:
TableOwner
id name
1 SomeCompany
2 SomeOtherCompany
TableContracts
Name ownerid
NewCompany Null --> Should remain null after the query
SomeCompany Null -->Should change to 1 after the query
SomeCompany Null -->Should change to 1 after the query
SomeOtherCompany Null -->Should change to 2 after the query
谢谢
答案 0 :(得分:1)
UPDATE
table_2
SET
id_of_the_other_entry_column = t1.ID
FROM
table_2 t2
INNER JOIN
table_1 t1
ON
t1.column_a = t2.column_b
修改强>
刚刚尝试使用MySQL,但没有成功。 使用MySQL:
UPDATE
table_2 as t2
SET
id_of_the_other_entry_column = (SELECT
t1.ID
FROM
table_1 as t1
WHERE
t1.col_a = t2.col_b
)
<强> Importent:强> 如果table_1包含多行,其中table_1.col_a等于table_2.col_b,则命令将中止。
答案 1 :(得分:1)
update tableContracts t2 set t2.ownerid=t1.id where exists( select t1.id from tableowner t1 where t1.name=t2.Name)