Returns only rows where the join condition matches in both tables.
Returns only rows that have matching values in both tables, discarding non-matching rows from either side. Efficient for strict lookups. If you suspect rows might be missing, add an anti-join or full outer join to audit the fallout.
| Database System | Support Status | Since Version | Notes |
|---|---|---|---|
| MySQL | ✓ Supported | all | INNER keyword is optional; JOIN alone implies INNER JOIN. |
| PostgreSQL | ✓ Supported | all | INNER keyword is optional; JOIN alone implies INNER JOIN. |
| SQL Server | ✓ Supported | all | INNER keyword is optional; JOIN alone implies INNER JOIN. |
| Oracle | ✓ Supported | all | INNER keyword is optional; JOIN alone implies INNER JOIN. |
| SQLite | ✓ Supported | all | INNER keyword is optional; JOIN alone implies INNER JOIN. |
The most common join type. Rows with no match in either table are excluded from the result.
INNER keyword is optional; JOIN alone implies INNER JOIN.
INNER keyword is optional; JOIN alone implies INNER JOIN.
INNER keyword is optional; JOIN alone implies INNER JOIN.
INNER keyword is optional; JOIN alone implies INNER JOIN.
INNER keyword is optional; JOIN alone implies INNER JOIN.