JOIN
Syntax
SELECT column_name(s)
FROM table1
JOIN table2
[ON table1.matchingCol1=table2.MatchingCol2]
Arguments
table1 and table2 are the tables to be joined.
matchingCol1 and matchingCol2 are the join columns.
Details
-
When an ON condition is not specified, perform CROSS JOIN and return the Cartesian product of the two tables.
-
When an ON condition is specified, perform INNER JOIN and return the joined records that meet the join condition.
Note:
-
Non-equi join is currently not supported. For example,
t1 join t2 on t1.id <op> t2.id
, where<op>
cannot be >, <,>=, <=, or <>. -
Multiple join columns must be connected with AND.
-
It cannot be used with keyword UPDATE.
Before version 1.30.22, select * from table1 join table2
is equivalent
to join(a,b)
, i.e., merging the two tables.
Examples
t1 = table(1 2 3 3 as id, 7.8 4.6 5.1 0.1 as value, 4 3 2 1 as x)
t2 = table(5 3 1 2 as idv, 300 500 800 200 as qty, 4 6 4 5 as xv);
SELECT * FROM t1 JOIN t2 WHERE x>3
//equivalent to SELECT * FROM t1 CROSS JOIN t2 WHERE x>3 or SELECT * FROM cj(t1,t2) WHERE x>3;
id | value | x | idv | qty | xv |
---|---|---|---|---|---|
1 | 7.8 | 4 | 5 | 300 | 4 |
1 | 7.8 | 4 | 3 | 500 | 6 |
1 | 7.8 | 4 | 1 | 800 | 4 |
1 | 7.8 | 4 | 2 | 200 | 5 |
SELECT * FROM t1 JOIN t2 ON t1.id=t2.idv ;
//equivalent to SELECT * FROM t1 INNER JOIN t2 ON t1.id=t2.idv
id | value | x | qty | xv |
---|---|---|---|---|
1 | 7.8 | 4 | 800 | 4 |
2 | 4.6 | 3 | 200 | 5 |
3 | 5.1 | 2 | 500 | 6 |
3 | 0.1 | 1 | 500 | 6 |