首页 > 数据库技术 > 详细

MySQL之多表查询

时间:2019-02-26 21:05:51      阅读:158      评论:0      收藏:0      [点我收藏+]

表和数据:

技术分享图片
-- 创建部门
CREATE TABLE dept (
    id int not null AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(10) not null COMMENT 部门名称
)
-- 添加部门数据
INSERT INTO `dept` VALUES (1, 教学部);
INSERT INTO `dept` VALUES (2, 销售部);
INSERT INTO `dept` VALUES (3, 市场部);
INSERT INTO `dept` VALUES (4, 人事部);
INSERT INTO `dept` VALUES (5, 鼓励部);

-- 创建人员
CREATE TABLE `person` (
  id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name varchar(50) NOT NULL,
  age tinyint(4) DEFAULT 0,
  gender enum(,) NOT NULL DEFAULT ,
  salary decimal(10,2) NOT NULL DEFAULT 2500.00,
  hire_date date NOT NULL,
  dept_id int(11) DEFAULT NULL
)
-- 添加人员数据
-- 教学部
INSERT INTO `person` VALUES (1, A, 28, , 53000.00, 2010-06-21, 1);
INSERT INTO `person` VALUES (2, B, 23, , 8000.00, 2011-02-21, 1);
INSERT INTO `person` VALUES (3, C, 30, , 6500.00, 2015-06-21, 1);
INSERT INTO `person` VALUES (4, D, 18, , 6680.00, 2014-06-21, 1);
-- 销售部
INSERT INTO `person` VALUES (5, E, 20, , 3000.00, 2015-02-21, 2);
INSERT INTO `person` VALUES (6, F, 20, , 2000.00, 2018-01-30, 2);
INSERT INTO `person` VALUES (7, G, 20, , 2000.00, 2018-02-27, 2);
INSERT INTO `person` VALUES (8, H, 20, , 2000.00, 2015-06-21, 2);
-- 市场部
INSERT INTO `person` VALUES (9, I, 21, , 4000.00, 2014-07-21, 3);
INSERT INTO `person` VALUES (10, J, 22, , 4000.00, 2015-07-15, 3);
-- 人事部
INSERT INTO `person` VALUES (11, K, 17, , 5000.00, 2014-06-21, 4);
-- 鼓励部
INSERT INTO `person` VALUES (12, L, 33, , 1000000.00, 2018-02-21, null);
View Code

一、多表联合查询

-- 多表查询语法
select  字段1,字段2 from 表1,表2 [where 条件];
注意: 如果不加条件直接进行查询,则会出现以下效果,这种结果我们称之为"笛卡尔乘积"
笛卡尔乘积公式 : A表中数据条数 * B表中数据条数  = 笛卡尔乘积

-- 查询人员和部门所有信息
select * from person,dept;
技术分享图片
id name age gender salary hire_date dept_id id1 name1

1    A    2853000    2010-06-21    1    1    教学部
1    A    2853000    2010-06-21    1    2    销售部
1    A    2853000    2010-06-21    1    3    市场部
1    A    2853000    2010-06-21    1    4    人事部
1    A    2853000    2010-06-21    1    5    鼓励部
2    B    238000    2011-02-21    1    1    教学部
2    B    238000    2011-02-21    1    2    销售部
2    B    238000    2011-02-21    1    3    市场部
2    B    238000    2011-02-21    1    4    人事部
2    B    238000    2011-02-21    1    5    鼓励部
3    C    306500    2015-06-21    1    1    教学部
3    C    306500    2015-06-21    1    2    销售部
3    C    306500    2015-06-21    1    3    市场部
3    C    306500    2015-06-21    1    4    人事部
3    C    306500    2015-06-21    1    5    鼓励部
4    D    186680    2014-06-21    1    1    教学部
4    D    186680    2014-06-21    1    2    销售部
4    D    186680    2014-06-21    1    3    市场部
4    D    186680    2014-06-21    1    4    人事部
4    D    186680    2014-06-21    1    5    鼓励部
5    E    203000    2015-02-21    2    1    教学部
5    E    203000    2015-02-21    2    2    销售部
5    E    203000    2015-02-21    2    3    市场部
5    E    203000    2015-02-21    2    4    人事部
5    E    203000    2015-02-21    2    5    鼓励部
6    F    202000    2018-01-30    2    1    教学部
6    F    202000    2018-01-30    2    2    销售部
6    F    202000    2018-01-30    2    3    市场部
6    F    202000    2018-01-30    2    4    人事部
6    F    202000    2018-01-30    2    5    鼓励部
7    G    202000    2018-02-27    2    1    教学部
7    G    202000    2018-02-27    2    2    销售部
7    G    202000    2018-02-27    2    3    市场部
7    G    202000    2018-02-27    2    4    人事部
7    G    202000    2018-02-27    2    5    鼓励部
8    H    202000    2015-06-21    2    1    教学部
8    H    202000    2015-06-21    2    2    销售部
8    H    202000    2015-06-21    2    3    市场部
8    H    202000    2015-06-21    2    4    人事部
8    H    202000    2015-06-21    2    5    鼓励部
9    I    214000    2014-07-21    3    1    教学部
9    I    214000    2014-07-21    3    2    销售部
9    I    214000    2014-07-21    3    3    市场部
9    I    214000    2014-07-21    3    4    人事部
9    I    214000    2014-07-21    3    5    鼓励部
10    J    224000    2015-07-15    3    1    教学部
10    J    224000    2015-07-15    3    2    销售部
10    J    224000    2015-07-15    3    3    市场部
10    J    224000    2015-07-15    3    4    人事部
10    J    224000    2015-07-15    3    5    鼓励部
11    K    175000    2014-06-21    4    1    教学部
11    K    175000    2014-06-21    4    2    销售部
11    K    175000    2014-06-21    4    3    市场部
11    K    175000    2014-06-21    4    4    人事部
11    K    175000    2014-06-21    4    5    鼓励部
12    L    331000000    2018-02-21        1    教学部
12    L    331000000    2018-02-21        2    销售部
12    L    331000000    2018-02-21        3    市场部
12    L    331000000    2018-02-21        4    人事部
12    L    331000000    2018-02-21        5    鼓励部
笛卡尔乘积示例

注意:多表查询时,一定要找到两个表中相互关联的字段,并且作为条件使用

-- 查询人员和部门所有信息
select * from person,dept where person.id = dept.id;

 

 

 

 

 

 

 

1

MySQL之多表查询

原文:https://www.cnblogs.com/believepd/p/10439997.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!