SQL-update met de waarde "waar" van een andere tabel?

Ik heb 2 tabellen, tabel_a en tabel_b . Ik wil user_id krijgen van table_a en een record bijwerken in table_b voor die user_id . Iets zoals dit:

Select * from table_a where user_id ="Ken"

if result is 22 

Update score = 1 where id = 22. 

Deze query's werken, maar ik wil ze combineren. Kan iemand me vertellen wat de beste manier is om dit te doen?

1
Welke versie van SQL gebruik je? mysql/oracle/sql-server? Deze verschillende RDBMS zullen verschillende opties hebben.
toegevoegd de auteur Adam Wenger, de bron

3 antwoord

Probeer dit, dit zou moeten werken,

UPDATE table_b
SET score=1
WHERE id = (select id from table_a where user_id ="Ken")
6
toegevoegd
UPDATE table_b SET score = 1
WHERE id IN (SELECT * FROM table_a WHERE user_id = "Ken")
3
toegevoegd
Ah goede vangst pst. Zou kunnen helpen als ik verwijs naar de tabel die wordt bijgewerkt :)
toegevoegd de auteur Nick Garvey, de bron
IF EXISTS (Select * from table_a where user_id ="Ken" )
If result=22
BEGIN
UPDATE table_a SET score = 1
END
1
toegevoegd