0
0
SQLquery~10 mins

INNER JOIN syntax in SQL - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - INNER JOIN syntax
Start with Table A
Start with Table B
Compare rows from A and B
Match rows where join condition is true
Combine matched rows into one result row
Output combined rows as result set
End
INNER JOIN takes two tables, compares rows based on a condition, and outputs only rows where the condition matches.
Execution Sample
SQL
SELECT A.id, A.name, B.order_id
FROM Customers A
INNER JOIN Orders B ON A.id = B.customer_id;
This query joins Customers and Orders tables, showing customers with their orders only if they have matching IDs.
Execution Table
StepActionTable A RowTable B RowJoin Condition (A.id = B.customer_id)Result Row Produced
1Compare first row of A with first row of Bid=1, name='Alice'order_id=101, customer_id=1Trueid=1, name='Alice', order_id=101
2Compare first row of A with second row of Bid=1, name='Alice'order_id=102, customer_id=2FalseNo row
3Compare second row of A with first row of Bid=2, name='Bob'order_id=101, customer_id=1FalseNo row
4Compare second row of A with second row of Bid=2, name='Bob'order_id=102, customer_id=2Trueid=2, name='Bob', order_id=102
5Compare third row of A with first row of Bid=3, name='Carol'order_id=101, customer_id=1FalseNo row
6Compare third row of A with second row of Bid=3, name='Carol'order_id=102, customer_id=2FalseNo row
7No more rows to compareEnd of join
💡 All rows compared; only rows with matching customer IDs included in result.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 4Final
Current Table A RowNoneid=1, name='Alice'id=1, name='Alice'id=2, name='Bob'id=3, name='Carol'
Current Table B RowNoneorder_id=101, customer_id=1order_id=102, customer_id=2order_id=102, customer_id=2order_id=102, customer_id=2
Join Condition ResultNoneTrueFalseTrueFalse
Result Rows ProducedEmpty[id=1, Alice, 101][id=1, Alice, 101][id=1, Alice, 101], [id=2, Bob, 102][id=1, Alice, 101], [id=2, Bob, 102]
Key Moments - 2 Insights
Why are some rows from Table A not in the result?
Rows from Table A only appear if they match a row in Table B on the join condition. See execution_table rows 2, 3, 5, 6 where condition is False, so no result row is produced.
Does INNER JOIN include rows with no matching partner in the other table?
No. INNER JOIN only outputs rows where the join condition is True. Rows without matches are skipped, as shown in execution_table where some comparisons produce no result.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the result row produced at Step 4?
Aid=1, name='Alice', order_id=102
Bid=2, name='Bob', order_id=102
Cid=3, name='Carol', order_id=101
DNo row
💡 Hint
Check the 'Result Row Produced' column at Step 4 in the execution_table.
At which step does the join condition first become False?
AStep 2
BStep 1
CStep 3
DStep 5
💡 Hint
Look at the 'Join Condition' column in execution_table rows 1-3.
If a new row in Table B had customer_id=3, how would the result change?
ANo change, because INNER JOIN only matches existing rows
BAll rows from Table A would appear in the result
CA new result row would appear matching Table A's id=3
DThe query would return an error
💡 Hint
Refer to variable_tracker showing how matching customer_id produces result rows.
Concept Snapshot
INNER JOIN syntax:
SELECT columns
FROM TableA
INNER JOIN TableB ON TableA.key = TableB.key;

It returns rows where keys match in both tables.
Rows without matches are excluded.
Used to combine related data from two tables.
Full Transcript
INNER JOIN combines two tables by matching rows where a specified condition is true. It compares each row from the first table with each row from the second table. Only rows where the join condition matches are included in the output. Rows without a matching partner in the other table are not shown. This is useful to find related data that exists in both tables. The example query joins Customers and Orders on customer ID, showing only customers who have orders. The execution table shows step-by-step how each row pair is compared and which produce results. Variables track the current rows and condition results. Key moments clarify why some rows are excluded and how matching works. The quiz tests understanding of join results and condition evaluation. The snapshot summarizes the syntax and behavior of INNER JOIN.