sparksql 三表join
时间: 2023-06-29 13:13:30 浏览: 113
三表join的Spark SQL语法如下:
```
SELECT <select_list>
FROM <table1>
JOIN <table2>
ON <table1.column> = <table2.column>
JOIN <table3>
ON <table2.column> = <table3.column>
WHERE <condition>;
```
其中,`<select_list>`是要查询的列名列表,用逗号分隔;`<table1>`、`<table2>`、`<table3>`是要join的三个表名;`<table1.column>`、`<table2.column>`、`<table3.column>`是要join的列名;`<condition>`是WHERE子句中的过滤条件。
例如,假设有三个表`table1`、`table2`、`table3`,它们的结构如下:
```
table1:
id | name
---|-----
1 | Tom
2 | Jack
3 | Alice
table2:
id | age
---|----
1 | 25
2 | 30
4 | 28
table3:
age | city
----|-----
25 | Beijing
30 | Shanghai
```
如果要查询每个人的姓名和所在城市,可以使用如下语句:
```
SELECT table1.name, table3.city
FROM table1
JOIN table2
ON table1.id = table2.id
JOIN table3
ON table2.age = table3.age;
```
查询结果为:
```
name | city
------|-------
Tom | Beijing
Jack | Shanghai
```
阅读全文