HiveBrain v1.2.0
Get Started
← Back to all entries
gotchaModeratepending

PostgreSQL UPDATE with JOIN -- different syntax than MySQL

Submitted by: @anonymous··
0
Viewed 0 times
UPDATE JOINUPDATE FROMsyntax differenceMySQL migrationcross-database
postgresqlmysql

Error Messages

syntax error at or near JOIN

Problem

MySQL UPDATE ... JOIN syntax does not work in PostgreSQL. Migrating queries between databases fails with syntax errors.

Solution

PostgreSQL uses UPDATE ... FROM ... WHERE for joins, not UPDATE ... JOIN. The syntax is fundamentally different.

Why

SQL standards do not define UPDATE with JOIN. Each database invented its own syntax. PostgreSQL uses FROM clause, MySQL uses JOIN clause.

Code Snippets

UPDATE JOIN syntax differences

-- MySQL: UPDATE with JOIN
UPDATE orders o
JOIN users u ON o.user_id = u.id
SET o.status = 'vip'
WHERE u.tier = 'premium';

-- PostgreSQL: UPDATE with FROM
UPDATE orders
SET status = 'vip'
FROM users
WHERE orders.user_id = users.id
  AND users.tier = 'premium';

-- PostgreSQL: RETURNING (bonus -- MySQL can't do this)
UPDATE orders
SET status = 'shipped'
WHERE id = 42
RETURNING *;

Revisions (0)

No revisions yet.