mysql一对多关联 mysql表一对二

导读:MySQL是一种关系型数据库管理系统,其中表是其最基本的组成单元 。在MySQL中 , 表之间可以建立不同类型的关系,例如一对一、一对多、多对多等 。本文将介绍一对二关系的MySQL表 。
1. 定义表结构
一对二关系的MySQL表通常包含两个表 , 分别为主表和从表 。主表存储主要信息,而从表存储与主表相关的附加信息 。主表与从表之间通过外键进行连接 。以下是一对二关系MySQL表的定义:
主表:
CREATE TABLE `main_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
从表:
CREATE TABLE `sub_table` (
`main_id` int(11) NOT NULL,
`sub_name` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_main_id` (`main_id`),
【mysql一对多关联 mysql表一对二】CONSTRAINT `fk_main_id` FOREIGN KEY (`main_id`) REFERENCES `main_table` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
2. 插入数据
向主表插入数据:
INSERT INTO `main_table` (`name`) VALUES ('Main A'), ('Main B'), ('Main C');
向从表插入数据:
INSERT INTO `sub_table` (`main_id`, `sub_name`) VALUES (1, 'Sub A1'), (1, 'Sub A2'), (2, 'Sub B1'), (3, 'Sub C1'), (3, 'Sub C2');
3. 查询数据
查询主表和从表的数据:
SELECT m.`id`, m.`name`, s.`id` AS `sub_id`, s.`sub_name`
FROM `main_table` m
LEFT JOIN `sub_table` s ON m.`id` = s.`main_id`
ORDER BY m.`id`;
结果如下:
id name sub_id sub_name
1 Main A 1 Sub A1
1 Main A 2 Sub A2
2 Main B 3 Sub B1
3 Main C 4 Sub C1
3 Main C 5 Sub C2
4. 总结
一对二关系的MySQL表适合存储主表与从表之间存在一对多关系的数据 。通过建立外键连接,可以方便地查询主表和从表的数据 。在实际应用中,需要根据具体情况进行表结构的设计和数据的插入、查询等操作 。

    推荐阅读