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

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

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

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

这里写图片描述

这里写图片描述

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

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

SELECT * FROM 表1 CROSS JOIN 表2;

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

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

欢迎关注本人个人公众号,交流更多技术信息

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tomatocc

赏杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值