SQLite交叉连接(Cross Join)

SQLite 交叉连接用于将第一个表的每一行与第二个表的每一行进行匹配。 如果第一个表包含x列,而第二个表包含y列,则所得到的交叉连接表的结果将包含x * y列。

语法:

SELECT ... FROM table1 CROSS JOIN table2

交叉连接如下图所表示 –

《SQLite交叉连接(Cross Join)》

示例

假设有两个表:departmentstudent

student表具有以下数据:

sqlite> select * from student;
1|Maxsu|27|Shengzhen|20000.0
2|Minsu|25|Beijing|15000.0
3|Avgsu|23|Shanghai|2000.0
4|Linsu|25|Guangzhou|65000.0
5|Sqlsu|26|Haikou|25000.0
6|Javasu|21|Shengzhen|18000.0
7|Linsu|27|Haikou|10000.0
8|Minsu|23|Guangzhou|5000.0
9|Maxsu|23|Shenzhen|9000.0
sqlite>

department表具有以下数据:

sqlite> select * from department;
1|财务部|1
2|技术部|2
3|技术部|3
4|市场部|4
5|市场部|5
sqlite>

注:这些数据用于后续学习连接相关操作使用,如果您还没有没有创建或插入上面数据,可参考:http://www.yiibai.com/sqlite/insert-query.html ,自行完成操作。

示例:

在交叉连接后从表departmentstudent中选择所有记录,如下查询语句 –

SELECT * FROM student CROSS JOIN DEPARTMENT;

执行上面查询,得到以下结果 –

sqlite> SELECT * FROM student CROSS JOIN DEPARTMENT;
1|Maxsu|27|Shengzhen|20000.0|1|财务部|1
1|Maxsu|27|Shengzhen|20000.0|2|技术部|2
1|Maxsu|27|Shengzhen|20000.0|3|技术部|3
1|Maxsu|27|Shengzhen|20000.0|4|市场部|4
1|Maxsu|27|Shengzhen|20000.0|5|市场部|5
2|Minsu|25|Beijing|15000.0|1|财务部|1
2|Minsu|25|Beijing|15000.0|2|技术部|2
2|Minsu|25|Beijing|15000.0|3|技术部|3
2|Minsu|25|Beijing|15000.0|4|市场部|4
2|Minsu|25|Beijing|15000.0|5|市场部|5
3|Avgsu|23|Shanghai|2000.0|1|财务部|1
3|Avgsu|23|Shanghai|2000.0|2|技术部|2
3|Avgsu|23|Shanghai|2000.0|3|技术部|3
3|Avgsu|23|Shanghai|2000.0|4|市场部|4
3|Avgsu|23|Shanghai|2000.0|5|市场部|5
4|Linsu|25|Guangzhou|65000.0|1|财务部|1
4|Linsu|25|Guangzhou|65000.0|2|技术部|2
4|Linsu|25|Guangzhou|65000.0|3|技术部|3
4|Linsu|25|Guangzhou|65000.0|4|市场部|4
4|Linsu|25|Guangzhou|65000.0|5|市场部|5
5|Sqlsu|26|Haikou|25000.0|1|财务部|1
5|Sqlsu|26|Haikou|25000.0|2|技术部|2
5|Sqlsu|26|Haikou|25000.0|3|技术部|3
5|Sqlsu|26|Haikou|25000.0|4|市场部|4
5|Sqlsu|26|Haikou|25000.0|5|市场部|5
6|Javasu|21|Shengzhen|18000.0|1|财务部|1
6|Javasu|21|Shengzhen|18000.0|2|技术部|2
6|Javasu|21|Shengzhen|18000.0|3|技术部|3
6|Javasu|21|Shengzhen|18000.0|4|市场部|4
6|Javasu|21|Shengzhen|18000.0|5|市场部|5
7|Linsu|27|Haikou|10000.0|1|财务部|1
7|Linsu|27|Haikou|10000.0|2|技术部|2
7|Linsu|27|Haikou|10000.0|3|技术部|3
7|Linsu|27|Haikou|10000.0|4|市场部|4
7|Linsu|27|Haikou|10000.0|5|市场部|5
8|Minsu|23|Guangzhou|5000.0|1|财务部|1
8|Minsu|23|Guangzhou|5000.0|2|技术部|2
8|Minsu|23|Guangzhou|5000.0|3|技术部|3
8|Minsu|23|Guangzhou|5000.0|4|市场部|4
8|Minsu|23|Guangzhou|5000.0|5|市场部|5
9|Maxsu|23|Shenzhen|9000.0|1|财务部|1
9|Maxsu|23|Shenzhen|9000.0|2|技术部|2
9|Maxsu|23|Shenzhen|9000.0|3|技术部|3
9|Maxsu|23|Shenzhen|9000.0|4|市场部|4
9|Maxsu|23|Shenzhen|9000.0|5|市场部|5
sqlite>

        原文作者:SQLite教程
        原文地址: https://www.yiibai.com/sqlite/cross-join.html
        本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
    点赞