mysql join 自联结_MYSQL联结(Join)

1 联结的作用和分类

我们都知道Mysql数据库是一种关系型数据库,这种数据库的最大特点之一是每个数据表之间都通过外键相关联。关系型数据库的优点可以避免很多不必要的重复,例如我们有一些产品和供应商的数据字段,如果有一个供应了很多产品,则会在产品后面重复写入很多次供应商,从而造成数据的冗余。另外,使用两个数据表存储产品和供应商,在更改供应商信息时,只需更改一次即可。

联结是一种关联两个或多个数据表时的一种操作,具体可以分为笛卡尔积(叉联结)、内联结、自联结、外联结,外联结又可以分为左外联结和右外联结。

2 笛卡尔积

笛卡尔积是一种类似于广播的联结方式,我们接下来的均以“mysql必知必会”一书中的数据表举例。

select prod_id, vendors.vend_id from products, vendors;

输出:

+---------+---------+

| prod_id | vend_id |

+---------+---------+

| ANV01 | 1001 |

| ANV01 | 1002 |

| ANV01 | 1003 |

| ANV01 | 1004 |

| ANV01 | 1005 |

| ANV01 | 1006 |

| ANV02 | 1001 |

| ANV02 | 1002 |

| ANV02 | 1003 |

| ANV02 | 1004 |

| ANV02 | 1005 |

| ANV02 | 1006 |

| ANV03 | 1001 |

| ANV03 | 1002 |

| ANV03 | 1003 |

| ANV03 | 1004 |

| ANV03 | 1005 |

| ANV03 | 1006 |

| FU1 | 1001 |

| FU1 | 1002 |

| FU1 | 1003 |

| FU1 | 1004 |

| FU1 | 1005 |

| FU1 | 1006 |

| OL1 | 1001 |

| OL1 | 1002 |

| OL1 | 1003 |

| OL1 | 1004 |

| OL1 | 1005 |

| OL1 | 1006 |

| DTNTR | 1001 |

| DTNTR | 1002 |

| DTNTR | 1003 |

| DTNTR | 1004 |

| DTNTR | 1005 |

| DTNTR | 1006 |

| FB | 1001 |

| FB | 1002 |

| FB | 1003 |

| FB | 1004 |

| FB | 1005 |

| FB | 1006 |

| FC | 1001 |

| FC | 1002 |

| FC | 1003 |

| FC | 1004 |

| FC | 1005 |

| FC | 1006 |

| SAFE | 1001 |

| SAFE | 1002 |

| SAFE | 1003 |

| SAFE | 1004 |

| SAFE | 1005 |

| SAFE | 1006 |

| SLING | 1001 |

| SLING | 1002 |

| SLING | 1003 |

| SL

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值