cross join
语法
cj(leftTable, rightTable)
参数
leftTable 和 rightTable 是连接的表。
在DolphinDB中,该语句的使用兼容 SQL 的语法:
select column_name(s) from leftTable cross join rightTable
详情
交叉连接函数返回两张表的笛卡尔积的结果集。如果左表有n行,右表有m行,那么笛卡尔积结果集含有n*m行。
例子
a = table(2010 2011 2012 as year)
b = table(`IBM`C`AAPL as Ticker);
a;
| year |
|---|
| 2010 |
| 2011 |
| 2012 |
b;
| Ticker |
|---|
| IBM |
| C |
| AAPL |
cj(a,b);
| year | Ticker |
|---|---|
| 2010 | IBM |
| 2010 | C |
| 2010 | AAPL |
| 2011 | IBM |
| 2011 | C |
| 2011 | AAPL |
| 2012 | IBM |
| 2012 | C |
| 2012 | AAPL |
select * from cj(a,b) where year>2010;
// 等价于 select * from a cross join b where year>2010
| year | Ticker |
|---|---|
| 2011 | IBM |
| 2011 | C |
| 2011 | AAPL |
| 2012 | IBM |
| 2012 | C |
| 2012 | AAPL |
相反, join 只是简单地合并两张表的列。
join(a,b);
| year | Ticker |
|---|---|
| 2010 | IBM |
| 2011 | C |
| 2012 | AAPL |
