关于交叉连接(CROSS JOIN)笛卡尔积的问题
交叉连接(CROSS JOIN)笛卡尔积返回所有表的结果集的乘积。
现有3个表
表1
ID 名称
1 名1
2 名2
3 名3
表2
ID 子ID 子名称
1 1 子名1
1 2 子名1
2 1 子名1
4 1 子名1
表3
ID 3ID 3名称
1 1 3名1
1 2 3名1
2 1 3名1
5 1 3名1
select 表1.名称,表2.子名称,表3.3名称 from 表1 CROSS JOIN 表2 CROSS JOIN 表3 WHERE 表1.ID=3 AND 表2.ID=3 AND 表3.ID=3
如果其中一个表结果集为0件,那么总的结果集就是0件,现在想分别取出ID为1,2,3,4,5的数据(其他表没有记录时字段为null,但这条记录要输出)怎么做SQL文呢?