SQL 笛卡尔积

/*=======================================
Description:
用SQL实现笛卡尔积
Author: CC
date: 2011.11.03
=======================================
*/

USE Test
GO

SELECT * FROM l; --如下图l
SELECT * FROM m; --如下图m

--交叉连接实现,lm
SELECT * FROM l CROSS JOIN m;

l表

lid         name
----------- --------------------
101         北京
102         太原
101         NULL
102         NULL

(4 行受影响)

 

m表
matid       qty         lid         mname
----------- ----------- ----------- --------------------
10011       1           101         北京
20012       1           102         太原
10011       1           102         太原
10011       1           102         太原

 

lm:

lid         name                 matid       qty         lid         mname
----------- -------------------- ----------- ----------- ----------- --------------------
101         北京                   10011       1           101         北京
102         太原                   10011       1           101         北京
101         NULL                 10011       1           101         北京
102         NULL                 10011       1           101         北京
101         北京                   20012       1           102         太原
102         太原                   20012       1           102         太原
101         NULL                 20012       1           102         太原
102         NULL                 20012       1           102         太原
101         北京                   10011       1           102         太原
102         太原                   10011       1           102         太原
101         NULL                 10011       1           102         太原
102         NULL                 10011       1           102         太原
101         北京                   10011       1           102         太原
102         太原                   10011       1           102         太原
101         NULL                 10011       1           102         太原
102         NULL                 10011       1           102         太原

(16 行受影响)


posted @ 2011-11-03 13:52  _cc  阅读(17248)  评论(0编辑  收藏  举报