《数据库技巧》数据库两个表求笛卡尔积(阶乘)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tomatocc/article/details/80760135

最近遇到了一个需求:用户在客户端页面上进行数据录入,下拉列表的选择,然后用户对页面数据进行提交。后台要根据客户端传来的数据进行分析,并且生成一串数字,将该数字串进行保存。

介绍之前,我们要了解本文的一个名词【笛卡尔积】,同俗的来讲,就是数学中的排列组合。

  • 如果还是不理解,就更直观的描述下。我们页面有两个下拉列表,每个列表有两个选项,用户的选择是随机的。因此正常情况下这两个列表的笛卡尔积就是2*2=4,那么我们就需要创建第三个表,将所有可能产生的数据都保存到这个表中。下面是这个例子;

这里写图片描述

这里写图片描述

  • 我们可以看到两个下拉列表的笛卡尔积是A1 A2 B1 B2这四种情况。

那么。我门就用sql将数据库的这两个下拉列表进行笛卡尔积:

SELECT * FROM 表1 CROSS JOIN 表2;

  • 这里要特表说明的是。我们上面的sql的意思是:将两个表进行笛卡尔积,但是实际开发中,所有的下拉列表(数据字典)都存在一张表里面,并且列表项也不可能只有2个选项,因此建议大家从新建表,将每个下拉列表单独创建为一张表,然后在进行笛卡尔积就好。

如果各位还是有疑问,欢迎留言

猜你喜欢

转载自blog.csdn.net/tomatocc/article/details/80760135
今日推荐