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