假如表a有以下3条记录:
a1,a2,a3
b1,b2,b3
c1,c2,c3
现在有3个日期(不是表的查询条件),我要查出以下的结果:
a1,a2,a3 日期1
a1,a2,a3 日期2
a1,a2,a3 日期3
b1,b2,b3 日期1
b1,b2,b3 日期2
b1,b2,b3 日期3
c1,c2,c3 日期1
c1,c2,c3 日期2
c1,c2,c3 日期3
以前没碰到过这个问题,求大侠们给个思路
SQL 查询??求助
------解决方案--------------------
自表 全连接
------解决方案--------------------
产生笛卡尔积就可以了
------解决方案--------------------
SELECT * FROM A,A;
------解决方案--------------------
SELECT O.* FROM A O CROSS JOIN A P;
SELECT O.* FROM A O,A P;
------解决方案--------------------
ChenZw> WITH A AS(
2 SELECT 'A1' A,'A2' B,'A3' C FROM DUAL UNION ALL
3 SELECT 'B1' A,'B2' B,'B3' C FROM DUAL UNION ALL
4 SELECT 'C1' A,'C2' B,'C3' C FROM DUAL
5 ),B AS(
6 SELECT '日期1' FROM DUAL UNION ALL
7 SELECT '日期2' FROM DUAL UNION ALL
8 SELECT '日期3' FROM DUAL
9 )
10 SELECT * FROM A,B;
A B C '日期
-- -- -- -----
A1 A2 A3 日期1
A1 A2 A3 日期2
A1 A2 A3 日期3
B1 B2 B3 日期1
B1 B2 B3 日期2
B1 B2 B3 日期3
C1 C2 C3 日期1
C1 C2 C3 日期2
C1 C2 C3 日期3
已选择9行。