mysql多表联查到新的表中_MySQL中的多表联查

多表查询:

1. 笛卡尔积的形式;

2. 内连接的形式:

查询两个表中符合连接条件的记录;

SELECT 字段名称,... FROM tbl_name1

INNER JOIN tbl_name2

ON 连接条件

3. 外连接的形式:

1).左外连接:

SELECT 字段名称,... FROM tbl_name1

LEFT [OUTER] JOIN tbl_name2

ON 条件;

//先显示左表中的全部记录,再去右表中查询复合条件的记录,不符合的以NULL代替

2).右外连接:

SELECT 字段名称,... FROM tbl_name1

RIGHT [OUTER] JOIN tbl_name2

ON 条件;

//先显示右表中的全部记录,再去左表中查询复合条件的记录,不符合的以NULL代替

案例:

CREATE DATABASE IF NOT EXISTS test2 DEFAULT CHARACTER SET 'UTF8';

USE test2;

CREATE TABLE emp(

id INT UNSIGNED AUTO_INCREMENT KEY,

username VARCHAR(20) NOT NULL UNIQUE COMMENT '编号',

age TINYINT UNSIGNED NOT NULL DEFAULT 18 COMMENT '年龄',

sex ENUM('男','女','保密') NOT NULL DEFAULT '保密' COMMENT '性别',

addr VARCHAR(20) NOT NULL DEFAULT '北京',

depId TINYINT UNSIGNED NOT NULL COMMENT '部门对应的编号'

)ENGINE=INNODB CHARSET=UTF8;

INSERT emp(username,age,depId) VALUES('king',24,1),

('queen',25,2),

('haha',26,1),

('lily',27,1),

('rose',28,3),

('john',29,3);

INSERT emp(username,age,depId) VALUES('测试用户',39,6);

CREATE TABLE dep(

id TINYINT UNSIGNED AUTO_INCREMENT KEY,

depName VARCHAR(50) NOT NULL UNIQUE,

depDesc VARCHAR(100) NOT NULL DEFAULT ''

)ENGINE=INNODB CHARSET=UTF8;

INSERT dep(depName,depDesc) VALUES('研发部','技术攻关'),

('JAVA部','撸JAVA代码'),

('WEB前端部','撸前端代码'),

('IOS部','撸IOS代码');

//查询 emp id username age 部门名称 dep depName

//笛卡尔积的形式:

SELECT emp.id,emp.username,emp.age,dep.depName FROM emp,dep;

//内连接的形式

SELECT e.id,e.username,e.age,d.depName

FROM emp AS e

INNER JOIN dep AS d

ON e.depId=d.id;

//查询emp id username age addr dep id depName depDesc

SELECT e.id,e.username,e.age,e.addr,

d.id,d.depName,d.depDesc

FROM dep AS d

JOIN emp AS e

ON d.id=e.depId;

//测试左外连接

SELECT e.id,e.username,e.age,d.depName,d.depDesc

FROM emp AS e

LEFT OUTER JOIN dep AS d

ON e.depId=d.id;

// 测试右外连接

SELECT e.id,e.username,e.age,d.depName,d.depDesc

FROM emp AS e

RIGHT JOIN dep AS d

ON e.depId=d.id;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.net 对于服务器控件添加Client端方法

Asp.net 对于服务器控件添加Client端方法: 1):如果有OnClientClick属性的话,直接给这个属性赋值即可。OnClientClick"MyClientFunction();" 2):如果有NavigateUrl属性的话(或者其他方式的url),可…

mysql数据存储和函数_MySQL数据库——存储和函数

一、存储过程1 基本语法CREATE PROCEDURE sp_name ([proc_parameter[,...]])[characteristic ...] routine_body格式[IN|OUT|INOUT]param_name type2. IN、OUT、INOUT参数(1)带84存储过程实例1 #带多重IF的存储过程2 CREATE PROCEDURE SP_SGRADE_LEVEL(IN p_level char(Repeat语…

在Salesforce中创建Approval Process

在Salesforce中可以创建Approval Process来实现审批流程的功能,实际功能与我们常说的Workflow很相似,具体的设置步骤如下所示 1):选择对应的Object去创建对应的Approval Process 2):点击下图中的Create New…

python都有哪些包装_Python基础:21包装

“包装”在Python 编程中经常会被提到的一个术语。意思是对一个已存在的对象进行包装,可以是对一个已存在的对象,增加,删除,或者修改功能。可以包装任何类型(type)作为一个类(class)的核心成员,以使新对象的行为模仿你…

Python 运算符括号

转载于:https://www.cnblogs.com/fanweisheng/p/11236193.html

计算机二级java试题_计算机二级考试《Java》试题及答案

计算机二级考试《Java》试题及答案选择题(每小题2分,共50分)下列各题A、B、C、D、 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分。(11)下列对Java语言的叙述中,错误的是()…

CanvasRenderingContext2D.fillText(text, x, y [, maxWidth]);

CanvasRenderingContext2D.fillText(text, x, y [, maxWidth]); [, maxWidth]的意思是,方括号代表可有可无,有fillText(text, x, y [, maxWidth])和fillText(text, x, y )2种形式https://www.zhangxinxu.com/wordpress/2018/02/canvas-text-break-line-l…

在.NET里用XSLT时怎么使用msxsl:script

来源:在.NET里用XSLT时怎么使用msxsl:script (思归呓语) 今天在CSDN论坛上看到一个网友在请教关于msxsl:script的用法。感觉这问题也许有点意思,所以在下面简述一下。 在MSXML里,你在msxsl:script里可以使用Javascript…

绕过waf mysql爆库_iwebsec刷题记录-SQL注入漏洞

被推荐了这个web平台,感觉挺适合新手的,网上搜了下没看到有人写wp,这里本入门萌新来稍微整理下自己解题的过程SQL注入漏洞01-数字型注入http://localhost:32774/sqli/01.php?id1发现有报错You have an error in your SQL syntax; check the …

【Vue】组件的基础与组件间通信

转载:https://segmentfault.com/a/1190000016409329 Vue.js 最核心的功能就是组件(Component),从组件的构建、注册到组件间通信,Vue 2.x 提供了更多方式,让我们更灵活地使用组件来实现不同需求。 一、构建组…

java 自定义map_自定义写实现java中map中的功能(简易)

package test;/*** 通过自定义来实现一个map功能* 存放键值对,根据键对象找到一个值对象,确保没有重复*/import java.util.Map;public class test01 {SxtEntry[] arrnew SxtEntry[990];int size;//定义函数实现将键值对放入数组public void put(Object k…

设计模式的功力长了!

今天醒来后,感觉理解了原来比较复杂的一些设计模式,很好,就像小时候感觉长高一样。学习设计模式有一年多了。进步需要时间!

java 验证码校验_JavaWeb验证码校验功能代码实例

后台生成验证码工具方法/** 设置图片的背景色*/public static void setBackGround(Graphics g, int WIDTH, int HEIGHT) {// 设置颜色g.setColor(Color.WHITE);// 填充区域g.fillRect(0, 0, WIDTH, HEIGHT);}/** 设置图片的边框*/public static void setBorder(Graphics g, int…

如何做不浮躁的人

51CTO著名专家老刘,连发了两篇博文,老刘的博客http://2844337.blog.51cto.com/ 都是劝谏我们年轻人不要浮躁。两篇文章用故事教育我们一定不要浮躁,但是如何做到不浮躁,老刘没有说。我想借着这个主题,简单谈一下自己的…

hasset java_java HashSet的使用

今天在写代码时想要使用HashSet,由于之前并不了解,就在网上查了一下原理及使用方法。HashSet原理该类实现了Set接口,HashSet中不允许元素重复,不保证集合中元素的顺序,元素可为null,但最多只能一个。对于 H…

Oracle tips

存储过程无法编译和抛掉!!我在一个项目组中与同事一起开发存储过程,碰到过其他人在调试存储过程时,我无法编译同一个存储过程的问题。但是,现在我使用pl/sql dev将其他的进程都杀掉后--包括在调…

TCP拥塞控制机制

为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”…

java中类似sort_java中的Sort函数,你值得看

基于C语言中的sort如此这么方便,自然而然,java中也有类似C的sort函数。1.普通数组:Arrays.sort(数组名,开始位置,结束位置)。2.类中属性排序:模板:class A{int n;}class cmp implement Comparat…

明天启程去北京:)

去北京参加为期5天的微软sps培训,公司穷呀,所以只能做火车去了,17日下午到达北京,18日-22日5天培训,23日到青岛,呆两三天然后26日下午回家:)有北京和青岛的朋友可以联系我…

多线程java 银行_Java 多线程 之 银行ATM实例

package com.thread;import java.util.Scanner;public class TestBank {public static void main(String[] args) {Bank bank new Bank();Thread lingming new Thread(bank, "李明");Thread wangtao new Thread(bank, "王涛");lingming.start();try {Th…