Inner join vs Where Inner join vs Where oracle oracle

Inner join vs Where


No! The same execution plan, look at these two tables:

CREATE TABLE table1 (  id INT,  name VARCHAR(20));CREATE TABLE table2 (  id INT,  name VARCHAR(20));

The execution plan for the query using the inner join:

-- with inner joinEXPLAIN PLAN FORSELECT * FROM table1 t1INNER JOIN table2 t2 ON t1.id = t2.id;SELECT *FROM TABLE (DBMS_XPLAN.DISPLAY);-- 0 select statement-- 1 hash join (access("T1"."ID"="T2"."ID"))-- 2 table access full table1-- 3 table access full table2

And the execution plan for the query using a WHERE clause.

-- with where clauseEXPLAIN PLAN FORSELECT * FROM table1 t1, table2 t2WHERE t1.id = t2.id;SELECT *FROM TABLE (DBMS_XPLAN.DISPLAY);-- 0 select statement-- 1 hash join (access("T1"."ID"="T2"."ID"))-- 2 table access full table1-- 3 table access full table2


If the query optimizer is doing its job right, there should be no difference between those queries. They are just two ways to specify the same desired result.


They should be exactly the same. However, as a coding practice, I would rather see the Join. It clearly articulates your intent,