MySQL ERROR 1066 (42000): Not unique table/alias: 'x'

The same table or alias appears twice in a FROM/JOIN without distinct aliases.

Seen on: SQL

Meaning

Self-joins and repeated joins need different aliases. ORMs joining the same relation twice can produce this.

Common causes

  • Self-join without aliases
  • Joining the same table twice
  • ORM eager loads duplicating joins

⚡ Quick fix

  1. Give each occurrence its own alias (u1, u2)
  2. Check ORM eager-loading config if the SQL is generated

Detailed fix by platform

SQL

  1. SELECT e.name, m.name AS manager FROM employees e JOIN employees m ON m.id = e.manager_id;

How to diagnose

  1. Alias — Which name repeats?
  2. Recent change — Did it start after a deploy, upgrade, or configuration change? Compare with the last working version.

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.