永发信息网

mysql怎么让2个表关联起来

答案:4  悬赏:70  手机版
解决时间 2021-03-05 12:24
mysql怎么让2个表关联起来
最佳答案
方法和操作步骤如下:
1、首先,创建2113一个测试表,如下图所示,然后进入下一步。





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





3、接着4102,完成上述步骤后,查询表1653中的数据,“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;”,如下图所示。这样,问题就解决了。答



全部回答
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表也会跟着删除相关联的记636f707962616964757a686964616f31333363383361录. 理论上parts表的part_name字段也应该要创建索引才对,但实验证创建关联后自动索引了。
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;
mysql 两个表中的信息关联起来使用方法:   1、创建主表:   create table userinfo(   userid int identity(1,1) primary key, --递增主键   useraccounts varchar(20),   username varchar(20),   userpwd varchar(10));   2、创建附表(含外键)   create table news(   newsid int identity(1,1) primarykey,   userid int,   newstitle varchar( 50 ),   newsrelease varchar( 200 ),   newsreleasetime datetime,   foreign key (userid) references userinfo(userid)); --外键约束   如果附表已存在,但没外键,可采用以下方法:   alter table profession add constraint fk_prov_id foreign key(prov_id) references province(prov_id) on update cascade on delete cascade;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
硬盘检测出一般,欠佳的区域算不算坏道
如图10-20所示,某五孔一联等跨径装配式预应
大家来帮我出出主意,我该叫什么简称
中国最近几年发生过龙卷风吗?
我很开朗用英语怎么说
刚刚从吸鼻子然后从喉咙里出来的。。。? 救
请用英语介绍一下会计里的负债 不少于300个单
深泽县白庄乡南张庄村村民委员会这个地址在什
活着一分钟&爱你六十秒改为繁体字
才摘的新鲜红花椒怎样晾晒.才不影响麻味?
笑傲江湖ol至尊宝答题器怎么用
结婚红包什么时候给
一凡白鹤画室在什么地方啊,我要过去处理事情
山阳区焦作鑫龙青少年服饰在什么地方啊,我要
重庆黄桷树黄桷树耐寒情况
推荐资讯
银联钱包是什么
中缅边境打洛镇翡翠好吗
洛阳哪家做轧机轴承比较专业的?要质量好,口
兰天环保锅炉辅机公司在哪里啊,我有事要去这
以往我们习惯了“酒香不怕巷子深”的低调和韬
从烟台到招远到哪坐车
延师教子者风趣幽默,通过主人和老师的对话,
中山市横栏镇有哪些工业区,具体路线怎么走?
路虎极光启停标志开关在哪
把两个大小完全一样的正方体拼成一个长方体,
struts2中获得request需要哪些jar包
十指传奇地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?