MySQL之两张表关系查找例子
teacher表
mysql> select * from teacher;
+-----+--------+-----+---------+----------+
| tid | tname | age | address | courseid |
+-----+--------+-----+---------+----------+
| 101 | 马云 | 50 | 杭州 | NULL |
| 102 | 赵本山 | 52 | 沈阳 | NULL |
| 103 | 刘强东 | 45 | 北京 | NULL |
+-----+--------+-----+---------+----------+
students表
mysql> select * from students;
+-----+--------+-----+---------+----------+
| sid | sname | age | address | courseid |
+-----+--------+-----+---------+----------+
| 1 | 小海子 | 23 | 北京 | 1003 |
| 2 | 小沈阳 | 45 | 沈阳 | 1003 |
| 3 | 刘阳 | 25 | 山东 | 1002 |
| 4 | 甘能 | 22 | 广东 | 1002 |
+-----+--------+-----+---------+----------+
找出teacher表中在students表中 address相同 的 tname
1、第一种做法(teacher表中的 address 在students表里面,即可完成本道题)
mysql> select t.tname
-> from teacher t
-> where t.address in(select address from students);
+--------+
| tname |
+--------+
| 刘强东 |
| 赵本山 |
+--------+
2、第二种做法(在students表中是否与teacher表中 存在address相等的情况)
①
mysql> select t.tname
-> from teacher t
-> where exists(select* from students s where t.address = s.address);
+--------+
| tname |
+--------+
| 赵本山 |
| 刘强东 |
+--------+
②
mysql> select t.tname
-> from teacher t ,students s
-> where t.address = s.address;
+--------+
| tname |
+--------+
| 刘强东 |
| 赵本山 |
+--------+
2018年1月18日00:38:29
MySQL之两张表关系查找例子的更多相关文章
- mysql关联两张表时的编码问题
Mysql关联两张表时,产生错误提示Illegal mix of collations 1.先用工具把数据库.两张表的编码方式改变 2.这步很重要,需要改变字段的编码方式. ALTER TABLE ` ...
- MySQL实现两张表数据的同步
有两张表A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录.两张表的结构不同,需要将其中几个字段对应起来.可以用下面的触发器实现. 表A的触发 ...
- mysql查询两张表更改一张表数据
(user 为要更改数据的表 ,set后边需要更改的内容, where后加条件) update user a,user_copy b set a.manager_introduct=b.rwjs wh ...
- mysql 组合两张表
select P.FirstName,P.Lastname,A.City,A.State from Person P left join Address A on P.PersonId = A.Per ...
- mysql 如何找出两张表之间的关系
分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的 ...
- Mysql两张表的关联字段不一致
工作中遇到了一个问题,邮件系统群发失败,后来经过排查查找到了原因 原来是因为mysql中的两张表的关联字段竟然不一致, 表A mysql> desc rm_user_router;+------ ...
- mysql左连接右连接(查询两张表不同的数据)
有两张表:一张A表he一张B表 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 :right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: ...
- MySQL实验1: 新建一个名为 library 的数据库,包含 book、reader 两张表,根据自己的理解安排表的内容并插入数据。
数据表(table)简称表,它是数据库最重要的组成部分之一.数据库只是一个框架,表才是实质内容. 实验: 新建一个名为 library的数据库,包含 book.reader两张表,根据自己的理解安排表 ...
- MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)
有两张表,info1, info2 . info1: info2: 现在,要用info2中的数据更新info1中对应的学生信息,sql语句如下: UPDATE info1 t1 JOIN info2 ...
随机推荐
- `GLIBCXX_3.4.15' not found when using mex file in matlab (linux)
from: http://www.360doc.com/content/14/0314/16/175261_360565922.shtml Invalid MEX-file '*/*/*.mexa64 ...
- MaskRCNN 奔跑自己的数据
import os import sys import random import math import re import time import numpy as np import cv2 i ...
- ZooKeeper 相关问题
[为什么部署个数是奇数个?] zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的.即 2n 个机器的集群,最多可以容忍 n-1 个机器不可用,这个容忍度与 ...
- 《Mysql - 在Mysql服务出现瓶颈时,有哪些“饮鸩止渴”提高性能的方法?》
一:情景 - 业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内.临时性地提升一些性能. - 在业务高发时候,Mysql 服务压力过大,导致业务受损, 用户的开发负责人说,不管你用 ...
- shell sed -i 指定内容追加.
1.查看原文件中的内容 [root@testvm02 ~]# cat nrpe.cfg #command[check_users]=/usr/local/nagios/libexec/check_us ...
- Python列表生成式测试
print('*'*50) list1 = list(range(1,6)) print(list1) del(list1) #range(1,20) 按顺序生成列表 list1 = [] for x ...
- ALV报表——ALV颜色设置(三)
目录 一.行 二.列 三.单元格 四.附ALV的颜色代码 一.行:用Layout相关属性设置 代码: *Report ZRFI001_XFL_TEST REPORT ZRFI001_XFL_TEST ...
- JAVA堆,栈的区别,用AarrayList、LinkedList自定义栈
大家都知道java模拟机在运行时要开辟空间所以它有特定的五个内存划分: 1.寄存器: 2.本地方法区: 3.方法区: 4.栈内存: 5.堆内存: 但是我们今天来注重讲一下栈和堆 ...
- 正确使用SQLCipher来加密Android数据库
Android本身自带有不加密的数据库SQLite,如果要保存密码之类的敏感数据在本地的话方法一是使用字段加密解密算法,方法二是整个数据库都加密掉.如果只是加密解密某个字段(如password)就推荐 ...
- js基本用法
1. 在HTML里面加入JavaScript 方法非常简单,就是通过一对<script></script>标签,然后在标签里面书写代码即可 2. 标签位置 按照以前传统的方法, ...