Explain Codes LogoExplain Codes Logo

Difference between JOIN and INNER JOIN

sql
join
best-practices
performance
Nikita BarsukovbyNikita Barsukov·Sep 4, 2024
TLDR

In SQL, JOIN is synonymous with INNER JOIN; they both return rows when there is a match in both tables. In a nutshell, both effectively do the same:

-- Either, like scoring a goal in regular time SELECT * FROM table1 JOIN table2 ON table1.id = table2.id; -- Or identically, like scoring in overtime SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;

Essentially, both queries seek the meaniningful matches across the tables, set on the fitting condition, in our case: table1.id = table2.id.

Ensuring clarity in SQL jungle

Choosing the explicit INNER JOIN notation in your SQL queries, especially among the wilderness of countless joins, is akin to leaving a trail of breadcrumbs, guiding anyone reading your query. This practice is particularly useful for team collaborations or for those times when you stumble upon your year-old SQL script and can't decipher your own code.

Consider this example:

-- Embarking on a SQL journey, fasten your seatbelts! SELECT orders.order_id, customers.name, products.product_name, order_details.quantity FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id INNER JOIN order_details ON orders.order_id = order_details.order_id INNER JOIN products ON products.product_id = order_details.product_id;

The explicit use of INNER JOIN in the query above states your intention loud and clear, leaving no room for misinterpretation.

SQL dialect's influence on join syntax

While the terms JOIN and INNER JOIN are universally recognized in the SQL world, there exist subtle nuances, like Microsoft Access insisting on the explicit usage of INNER JOIN notation. These syntax subtleties can sometimes influence your choice of join syntax.

Performance myths busted

Among SQL enthusiasts, a popular debate crops up around whether the choice of syntax (implicit JOIN or explicit INNER JOIN) influences query's performance. Spoiler alert: It doesn't. Under the hood, the database engine interprets the JOIN and INNER JOIN in identical ways. The real bread and butter of query performance lies in crafting accurate join conditions and strategic indexing.

Choosing join syntax: salsa or tango?

The choice between JOIN and INNER JOIN often boils down to either personal rhythm or team's choreography choice. Consistency is the star of this SQL dance. Establishing a collective agreement on the syntax can contribute immensely to cleaner and more harmonic code. This sparks the need for a team's SQL style guide which is like a choreographer ensuring all dancers move in tune.

Comprehending through applications and setbacks

Choosing between an implicit JOIN and an explicit INNER JOIN essence lies in their practical applications. When you are dealing with complex SQL queries, employing the explicit INNER JOIN iteration is equivalent to placing a neon sign declaring "Intersection Only!".

However, using the more ambiguous JOIN, in contrast, could lead you down the road of potential mishaps. Imagine the confusion when trying to discern between a left, right, or inner join. A clear INNER JOIN helps steer away from the chaos and ambiguity.

Thus, in the ocean of SQL, prefer the humble JOIN when sailing through calm and clear waters. But as soon as stormy and muddled skies approach, hoist the INNER JOIN sail to navigate with clarity.