2011-01-19 128 views
0

我一直在嘗試不同的SQL查詢的是做到以下幾點:幫助一個SQL查詢

對於具有已在TABLE_1的clumn_a一個FIELD_VALUE這TABLE_2的column_b等於任何字段值字段中的所有表項將table_2中字段的id插入到table_1的id_of_the_other_entry_column中。

但是,我只能使用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 

感謝

回答

1
update tableContracts t2 set t2.ownerid=t1.id where exists(select t1.id from tableowner t1 where t1.name=t2.Name) 
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該命令將中止。

+0

但是select會返回一組許多不同的id,因爲t1.col_a = t2.col_b對於許多不同的id是真實的。 – woolagaroo 2011-01-19 08:05:54

+0

是table_2鏈接到許多table_1行? – Wowa 2011-01-19 08:22:00