mysql 一对多关联查询联系


这里以班级和学生为例来进行演示。

很显然,一个班级可以有很多个学生,但是一个学生只能属于一个班级。所以,学生表应该是主表,班级表为子表。

创建学生表

CREATE TABLE `student` (
 `ID` int(22) NOT NULL,
 `StuName` varchar(22) DEFAULT NULL,
 `StuAge` int(22) DEFAULT NULL,
 `Cid` int(22) DEFAULT NULL,
  PRIMARY KEY (`ID`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

插入几条学生数据

mysql> INSERT INTO `student` VALUES ('1', '张三', '66', '3');

mysql> INSERT INTO `student` VALUES ('2', '李四', '77', '3');

mysql> INSERT INTO `student` VALUES ('4', '王五', '25', '4');

  

 

创建班级表

CREATE TABLE `class` (
 `ID` int(22) NOT NULL,
 `ClassName` varchar(22) DEFAULT NULL,
  PRIMARY KEY (`ID`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

插入几条班级数据 

mysql> INSERT INTO `class` VALUES ('1', 'python');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `class` VALUES ('2', 'linux');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO `class` VALUES ('3', 'java');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO `class` VALUES ('4', 'php');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `class` VALUES ('5', 'devops');
Query OK, 1 row affected (0.00 sec)

 

需求,查询学生所对应的班级

sql如下

mysql> select s.StuName,s.StuAge,c.className from student s INNER JOIN  class c ON  s.Cid=c.ID;
+---------+--------+-----------+
| StuName | StuAge | className |
+---------+--------+-----------+
| 张三    |     66 | java      |
| 李四    |     77 | java      |
| 王五    |     25 | php       |
+---------+--------+-----------+
3 rows in set (0.00 sec)

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM