当前位置:Gxlcms > 数据库问题 > 数据库连表操作之一对多

数据库连表操作之一对多

时间:2021-07-01 10:21:17 帮助过:3人阅读

表:part

技术分享

有表如上所示,当成员达到一定数量时,我们需要开启大量的空间存放他们所在的部分,部门名称又长,而且存在大量重复,十分浪费存储空间。

我们将表一分为二

表1:part

技术分享

表2:person

技术分享

何为一对多呢?

在part表中的一条数据对应person表中多条数据

表1:part

技术分享

 表2:person

技术分享

设置外键

  • 创建关联
  • 创建约束:在part表中的一条数据对应person表中多条数据

技术分享

CREATE TABLE person (
  nid int(11) NOT NULL AUTO_INCREMENT,
  name varchar(32) NOT NULL,
  email varchar(32) NOT NULL,
  part_nid int(11) DEFAULT NULL,
  PRIMARY KEY (nid),
  CONSTRAINT person_ibfk_1 FOREIGN KEY (part_nid) REFERENCES part (nid),
) 

连表方式

A left join B on a.xx = b.xx
    以A表为主
    将A中所有数据罗列出来
    B,只显示于A相应的数据
A inner join B on a.xx = b.xx
    自动忽略未建立关系的数据

 A left B          

技术分享

 B left A  

技术分享

  A inner B

技术分享

A left B left C   

技术分享

数据库连表操作之一对多

标签:tle   技术   http   连表   class   部分   highlight   size   strong   

人气教程排行