Skip to content
Advertisement

How can I do an UPDATE statement with JOIN in SQL Server?

I need to update this table in SQL Server with data from its ‘parent’ table, see below:

Table: sale

Table: ud

sale.assid contains the correct value to update ud.assid.

What query will do this? I’m thinking of a join but I’m not sure if it’s possible.

Advertisement

Answer

Syntax strictly depends on which SQL DBMS you’re using. Here are some ways to do it in ANSI/ISO (aka should work on any SQL DBMS), MySQL, SQL Server, and Oracle. Be advised that my suggested ANSI/ISO method will typically be much slower than the other two methods, but if you’re using a SQL DBMS other than MySQL, SQL Server, or Oracle, then it may be the only way to go (e.g. if your SQL DBMS doesn’t support MERGE):

ANSI/ISO:

MySQL:

SQL Server:

PostgreSQL:

Note that the target table must not be repeated in the FROM clause for Postgres.

Oracle:

SQLite:

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement