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/2.00.10, 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 |