SQLite Forum

LEFT JOIN Misunderstanding
Login
> "INNER JOIN" + WHERE is how one does an equijoin. It works, it has always worked, and there is no other alternate specification."

ANSI might have something to say about that. FROM ISO/IEC 9075. 

Section 7 (Query Expressions), Subsection 7.7:

<joined table> ::=
  <cross join>
  | <qualified join>
  | <natural join>

<cross join> ::=
  <table reference> CROSS JOIN <table factor>

<qualified join> ::=
  { <table reference> | <partitioned join table> }
  [ <join type> ] JOIN
  { <table reference> | <partitioned join table> }
  <join specification>

<partitioned join table> ::=
  <table factor> PARTITION BY
     <partitioned join column reference list>

<partitioned join column reference list> ::=
 <left paren> <partitioned join column reference>
  [ { <comma> <partitioned join column reference> }... ]
   <right paren>

<partitioned join column reference> ::=
 <column reference>

<natural join> ::=
 { <table reference> | <partitioned join table> }
  NATURAL [ <join type> ] JOIN
   { <table factor> | <partitioned join table> }

<join specification> ::=
  <join condition>
  | <named columns join>

<join condition> ::=
  ON <search condition>

<named columns join> ::=
  USING <left paren> <join column list> <right paren>

<join type> ::=
  INNER
  | <outer join type> [ OUTER ]

<outer join type> ::=
  LEFT
  | RIGHT
  | FULL

<join column list> ::=
  <column name list>