帮助SQL查询

时间:2011-01-19 07:38:16

标签: sql

我一直在尝试执行以下操作的不同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

谢谢

2 个答案:

答案 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)