SQL 笛卡尔积
假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。/*=======================================
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 行受影响)
属性超过1的关系的笛卡尔积怎么计算呢?例如: 关系R: A1 A2 A3 a b c b a c c a b 关系S: A1 A2 A3 b a c a b c c a b 请问关系R × 关系S结果是什么?具体怎么计算呢?3列和1列一样! 按照行来计算~~可以把每行的3列看做一个整体(看成1列) A1 A2 A3 A1 A2 A3 a b c a b c a b c b a c a b c c a b b a c a b c b a c b a c b a c c a b c a b a b c c a b b a c c a b c a b
数据库专题——笛卡尔积
最新推荐文章于 2024-06-15 21:23:05 发布