码迷,mamicode.com
首页 > 数据库 > 详细

数据库连表操作之一对多

时间:2017-09-09 14:31:37      阅读:170      评论:0      收藏:0      [点我收藏+]

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

引言

表: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   

原文地址:http://www.cnblogs.com/wuwen19940508/p/7498074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!