mysql怎么让2个表关联起来

 我来答
59分粑粑分享生活
高粉答主

2020-03-25 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119828

向TA提问 私信TA
展开全部

方法和操作步骤如下:

1、首先,创建一个测试表,如下图所示,然后进入下一步。

2、其次,插入测试数据,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,查询表中的数据,“select t.* from test_tbl2 t ”,如下图所示,然后进入下一步。

4、最后,完成上述步骤后,编写sql,两个表通过pid与id关联, “select t1.*, t2.* from test_tbl1 t1 join test_tbl2 t2 on t1.p_id = t2.id;”,如下图所示。这样,问题就解决了。

freechan10
2019-12-12 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.8万
展开全部

1、创建测试表,

create table test_tbl1(id int, p_id int);

create table test_tbl2(id int, name varchar2(20));

2、插入测试数据

insert into test_tbl1 values(1001,1);

insert into test_tbl1 values(1002,1);

insert into test_tbl1 values(2001,2);

insert into test_tbl1 values(3001,3);

insert into test_tbl2 values(1,'name1');

insert into test_tbl2 values(2,'name2');

insert into test_tbl2 values(3,'name3');

3、查询表中数据,select t.* from test_tbl2 t ;

4、编写sql,两表通过pid与id关联;select t1.*, t2.* from test_tbl1 t1 join test_tbl2 t2 on t1.p_id = t2.id;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
成都中公优就业
2017-08-10 · TA获得超过463个赞
知道小有建树答主
回答量:283
采纳率:50%
帮助的人:72.2万
展开全部

MySQL创建关联表是非常基础的知识,下面就为您举例说明MySQL创建关联表的方法,

MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件
1.两个表必须是InnoDB数据引擎
2.使用在外键关系的域必须为索引型(Index)
3.使用在外键关系的域必须与数据类型相似
下面分别建两个表来说明一下:

Create TABLE IF NOT EXISTS `books` (    
  `book_id` smallint(6) NOT NULL auto_increment COMMENT '书籍编号',    
  `book_name` char(20) NOT NULL COMMENT '书名',    
  `book_pic` varchar(200) NOT NULL COMMENT '封面',    
  `book_author` char(20) NOT NULL COMMENT '作者',    
  `book_pub` char(40) NOT NULL COMMENT '出版社',    
  `book_sort` char(6) NOT NULL COMMENT '分类',    
  `book_owner` char(6) default NULL COMMENT '所有者',    
  `book_borrower` char(7) default NULL COMMENT '借阅者',    
  `book_borrower_time` date default NULL COMMENT '借阅时间',    
  PRIMARY KEY  (`book_id`),    
  INDEX (book_borrower))    
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=5 ;


Create TABLE IF NOT EXISTS `parts` (    
  `part_id` smallint(6) NOT NULL COMMENT '成员编号',    
  `part_name` varchar(6) NOT NULL COMMENT '成员名',    
  `part_mail` varchar(50) NOT NULL COMMENT '邮箱',    
  `part_pass` varchar(20) NOT NULL COMMENT '密码',    
  PRIMARY KEY  (`part_id`),    
FOREIGN KEY(part_name) REFERENCES books(book_borrower) on delete cascade on update cascade)    
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;


分析一下books表和parts表,创建他们的关联,我用了books表的book_borrower字段 创建表时索引并选择InnoDB为表引擎。而parts表即part_name字段为外键,关联到books表的book_borrower字段.注意两 个字段分别是char和varchar都是字符串类型。on delete cascade意思为当books表有相关记录删除时,那parts表也会跟着删除相关联的记录. 理论上parts表的part_name字段也应该要创建索引才对,但实验证创建关联后自动索引了。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式