【转】mysql数据库中实现内连接、左连接、右连接

内连接:把两个表中数据对应的数据查出来 
外连接:以某个表为基础把对应数据查出来

首先创建数据库中的表,数据库代码如下:

/*
Navicat MySQL Data Transfer
Source Server         : localhost_3306
Source Server Version : 50150
Source Host           : localhost:3306
Source Database       : store
Target Server Type    : MYSQL
Target Server Version : 50150
File Encoding         : 65001
Date: 2010-12-15 16:27:53
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `grade`
-- ----------------------------
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (`no` int(11) NOT NULL AUTO_INCREMENT,`grade` int(11) NOT NULL,PRIMARY KEY (`no`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of grade
-- ----------------------------
INSERT INTO grade VALUES ('1', '90');
INSERT INTO grade VALUES ('2', '80');
INSERT INTO grade VALUES ('3', '70');
-- ----------------------------
-- Table structure for `student`
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`no` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,PRIMARY KEY (`no`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO student VALUES ('1', 'a');
INSERT INTO student VALUES ('2', 'b');
INSERT INTO student VALUES ('3', 'c');
INSERT INTO student VALUES ('4', 'd');

student表中的字段分别是no和name,grade表中的字段是no和grade。两张表中的no都代表的是学生的学号。

查询student表的结果:

mysql> select * from grade;
+----+-------+
| no | grade |
+----+-------+
|  1 |    90 |
|  2 |    80 |
|  3 |    70 |
+----+-------+
3 rows in set

查询grade表的结果:

mysql> select * from student;
+----+------+
| no | name |
+----+------+
|  1 | a    |
|  2 | b    |
|  3 | c    |
|  4 | d    |
+----+------+
4 rows in set

内连接 inner join(查找条件中对应的数据,no4没有数据不列出来)

mysql> select * from student s inner join grade g on s.no=g.no;+----+------+----+-------+
| no | name | no | grade |
+----+------+----+-------+
|  1 | a    |  1 |    90 |
|  2 | b    |  2 |    80 |
|  3 | c    |  3 |    70 |
+----+------+----+-------+
3 rows in set

左连接(左表中所有数据,右表中对应数据)

mysql> select * from student as s left join grade as
g on s.no=g.no;
+----+------+------+-------+
| no | name | no   | grade |
+----+------+------+-------+
|  1 | a    |    1 |    90 |
|  2 | b    |    2 |    80 |
|  3 | c    |    3 |    70 |
|  4 | d    | NULL | NULL  |
+----+------+------+-------+
4 rows in set

右连接(右表中所有数据,左表中对应数据)

mysql> select * from student as s rightjoin grade as g on s.no=g.no;
+----+------+----+-------+
| no | name | no | grade |
+----+------+----+-------+
|  1 | a    |  1 |    90 |
|  2 | b    |  2 |    80 |
|  3 | c    |  3 |    70 |
+----+------+----+-------+
3 rows in set

转载于:https://www.cnblogs.com/zzzzw/p/4869719.html

【转】mysql数据库中实现内连接、左连接、右连接相关推荐

  1. MySQL数据库中的内置函数

    SQL函数分为单行函数和多行函数: 单行函数: 红色标注的为重点. - - - -字符串函数: - - - - - - - - - - 1.length() 存储长度 - - - - - - - - ...

  2. jq获取内容ajax传递数据库,使用php和jquery ajax从mysql数据库中获取数据

    我想使用php和jquery ajax从mysql数据库中获取数据." process.php"是连接到数据库并获取mysql数据的php文件.当它单独运行时它可以工作,但是当使用 ...

  3. mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...

    如何在Java程序中访问mysql数据库中的数据并进行简单的操作 在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据 ...

  4. 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中

    1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件 ②安装MySQL数据库(下载地址:https://www.mysql.com/) ③安装Navicat Premium来查看 ...

  5. 在mysql数据库中,多表查询,事务,DCL,

    多表查询: * 查询语法:select列名列表from表名列表where.... * 准备sql# 创建部门表CREATE TABLE dept(id INT PRIMARY KEY AUTO_INC ...

  6. MySQL数据库中的多表查询含义以及练习~建议码友们点亮拇指+收藏呐~

    MySQL数据库中的多表查询含义以及练习 一. 多表查询含义 二. 多表查询练习 1. 已知表 2. 需求And代码 一. 多表查询含义 查询语法: select列名列表from表名列表where条件 ...

  7. 用 Python selenium爬取股票新闻并存入mysql数据库中带翻页功能demo可下载

    用 Python selenium爬取实时股票新闻并存入mysql数据库中 1.分析需求 2.创建表 3.分析需要爬取的网页内容 4.python里面selenium进行爬虫操作 1.添加包 2.连接 ...

  8. mysql题库随机抽取试题_Python从MySQL数据库中面抽取试题,生成试卷

    一.背景 本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样. 二.准备工作 1.安装Python3 2.安装库 pip install python-doc ...

  9. MySQL 数据库中 in、some、any、all 的区别与使用

    MySQL 数据库中 in.some.any.all 的区别与使用 in.some.any.all的理解 in:在某个范围内存在,就返回true: in (a,b,c)可以理解成 a or b or ...

  10. Mysql数据库中的各种锁

    目录 概述 MyIsam 如何加表锁 并发锁 MyISAM的锁调度 InnoDB 事务(Transaction)及其ACID属性 并发事务带来的问题 InnoDB都有哪些锁? InnoDB的行锁模式及 ...

最新文章

  1. 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
  2. Oracle 同义词的创建及其作用
  3. markdown流程图多分支_提高生产力的好工具MarkDown语法学习
  4. 非平坦结构元matlab,基于MATLAB的巴特沃思型数字滤波器设计.doc
  5. pwn波c语言程序,pwn的一些命令
  6. 十道解分式方程及答案_100道八年级分式方程及答案.
  7. 逻辑斯蒂回归java_机器学习 (五)逻辑斯蒂回归
  8. 天干物燥,给你写BUG的心来点甘露
  9. 生僻词汇(地名,动植物名)
  10. 网络字节序与主机字节序 高低位
  11. word文档误删怎么恢复
  12. Win:从 Microsoft官方网站下载官方正版ISO镜像文件(以Windows10为例,图文教程)
  13. 比较好的运动耳机,好用的运动耳机推荐
  14. Bootstrap栅格参数
  15. 1、RL Problem
  16. simplify-js 降低曲线拟合使用的点数
  17. 罗克韦尔AB PLC安装Studio 5000 V35的具体步骤演示
  18. 小记--------hbase数据库java API 常用方法及案例
  19. Python读取MIT-BIH数据中心电信号
  20. 为什么说使用HTTP代理上网更安全?

热门文章

  1. efsframe java_EfsFrame(java开发框架)
  2. 《K-means聚类算法研究综述》笔记
  3. softmax回归 这个屌我竟然看懂了
  4. 语音识别系统原理介绍---从gmm-hmm到dnn-hmm
  5. 最新隐马尔可夫模型HMM详解
  6. php匿名函数自调用,使用自调用函数和匿名函数吃饭
  7. 进程线程之pid,tid
  8. 安装PHP ImageMagick笔记
  9. [网络流24题] 试题库问题
  10. SSH框架调用scrapy爬虫