JOIN
defaults to INNER JOIN
behaviour.
To verify this, I ran the following code:
DECLARE @A TABLE (x INT)
INSERT INTO @A
SELECT 1 UNION ALL
SELECT 2
DECLARE @B TABLE (x INT)
INSERT INTO @B
SELECT 2 UNION ALL
SELECT 3
SELECT
A.x AS 'A.x',
B.x AS 'B.x'
FROM @A A
JOIN @B B
ON A.x = B.x
This produces just one row, consistent with INNER JOIN
behaviour:
A.x | B.x
-----+-----
2 | 2
Contrast this with a FULL OUTER JOIN
:
...
SELECT
A.x AS 'A.x',
B.x AS 'B.x'
FROM @A A
FULL OUTER JOIN @B B
ON A.x = B.x
This of course shows all three rows:
A.x | B.x
-----+-----
1 | NULL
2 | 2
NULL | 3