SQL如何查询两个表的数据
在进行查询操作时,我们通常需要查询两个关联表的数据,我们可以使用where语句进行查询,如:
select Emp.E_Id,Company.C_OraName from Emp,Company where Companey.C_Id=Emp.C_Id
但是我们往往会碰到比较复杂的语句,这时候使用where就不太合适了,其实SQL可以用较为直接的形式进行连接操作,可以在From子句中以直接的形式指出:
select top 10 E_Id,E_Name,C_Name
from
Emp join Companey on Companey.C_Id=Emp.C_Id
where
E_Id not in (select top 20 E_Id from Emp order by E_Id asc)
order by E_Id asc
//查询表Emp中第21到第30条数据以升序排列,其中C_Name来自于另一个表
Emp join Companey on Companey.C_Id=Emp.C_Id 就是一个常见的连接:表A join 表B on A.c=B.c
连接大大简化了SQL语句,也使得SQL语句更直观易懂
附:下面介绍一下SQL连接
Sql连接类型有:
inner join | 内连接 |
left outer join | 左外连接 |
right outer join | 右外连接 |
full outer join | 完全外连接 |
连接关键字有:NATURAL,ON,USING 举例说明连接操作的结果:
A | B | C |
a1 | b1 | c1 |
a2 | b2 | c2 |
a3 | b3 | c3 |
B | C | D |
b1 | c1 | d1 |
b2 | c2 | d2 |
b4 | c4 | d4 |
X natural left outer join Y
A | B | C | D |
a1 | b1 | c1 | d1 |
a2 | b2 | c2 | d2 |
a3 | b3 | c3 | null |
X left outer join Y on X.B=Y.B and X.C=Y.B
A | X.B | X.C | Y.B | Y.C | Y.D |
a1 | b1 | c1 | b1 | c1 | d1 |
a2 | b2 | c2 | b2 | c2 | d2 |
a3 | b3 | c3 | null | null | null |
A | B | X.C | Y.C | D |
a1 | b1 | c1 | c1 | d1 |
a2 | b2 | c2 | c2 | d2 |
a3 | b3 | c3 | null | null |
SQL如何查询两个表的数据的更多相关文章
- SQL联合查询两个表的数据
刚有个项目,需要查询水位数据表中的水位信息,及查询降雨量表中统计时段降雨量的数据,以计算出日降雨量,而且时段是前一天8时到后一天8时总共24个小时. 两个子查询: 1.根据当前时间判断统计前天8时到今 ...
- php同时查询两个表的数据
业务环境,表一 会员等级表, 表二会员表, 有一个字段是相同的 会员等级ID level 在会员的显示页面要直接显示会员的会员等级名称,不是等级ID. 1.同时查询两个表 2.表设置别名, selec ...
- django同时查询两张表的数据,合并检索对象返回
原始需求: 1.一篇文章内容分N个版块,每篇文章的版块数量不同. 2.有个文章搜索功能,需要同时搜索标题和内容. 实现思路: 1.由于每篇文章的内容版块数量不同,因此将每个文章的标题和内容分开存入2张 ...
- SQL高效查询两个表不同的数据
逻辑相对复杂,但是速度最快: )
- MySQL关系表查询两个表的数据
如下,有四张表:游戏类型表,游戏表,点卡和游戏关系表,点卡表 CREATE TABLE `gamesType`( `tId` INT AUTO_INCREMENT NOT NULL PRIMARY K ...
- mysql左连接右连接(查询两张表不同的数据)
有两张表:一张A表he一张B表 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 :right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: ...
- SQL 统计两个表的数据,按同一日期分组
思路:把两个表的数据按日期整合到临时表在按日期分组,求和. 例子: SELECT t.dateTime AS '日期',SUM(t.money) AS '表1利息',SUM(t.interest) A ...
- hive sql 查询一张表的数据不在另一张表中
有时,我们需要对比两张表的数据,找到在其中一张表,不在另一张表中的数据 hql 如下: SELECT * FROM (SELECT id FROM a WHERE dt = '2019-03-17' ...
- Oracle 取两个表中数据的交集并集差异集合
Oracle 取两个表中数据的交集 关键字: Oracle 取两个表中数据的交集 INTERSECT Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要 ...
随机推荐
- Cracking the coding interview--Q1.8
原文: Assume you have a method isSubstring which checks if one word is a substring of another. Given t ...
- 8.2.1.5 Engine Condition Pushdown Optimization 引擎条件下推优化
8.2.1.5 Engine Condition Pushdown Optimization 引擎条件下推优化 这种优化改善了直接比较在一个非索引列和一个常量比较的效率. 在这种情况下, 条件是 下推 ...
- BZOJ3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: ...
- Java中快速排序的实现
快速排序是对冒泡排序的一种改进.它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要 小,然后再按次方法对这两部分数据分别进行快速排序,整个排 ...
- [LeetCode] 200. Number of Islands 解题思路
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...
- python遗传算法实现数据拟合
python据说功能强大,触角伸到各个领域,网上搜了一下其科学计算和工程计算能力也相当强,具备各种第三方包,除了性能软肋外,其他无可指摘,甚至可以同matlab等专业工具一较高下. 从网上找了一个使用 ...
- JS-Array数组内置对象
直接上代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...
- MyEclipse中用Maven创建Web项目(亲测有效)
new --> other 1.Wizards: mvaen 2.Maven Project 3.Next Use Default Workspace Location 1.weba ...
- JS(二)
对象里面的属性和方法比较多啊,不容易记住,需要多实践: 1.将一串字符串的顺序颠倒,并实现首尾字母大写的两种方法: <!DOCTYPE html> <html lang=" ...
- SQL Server error "Xml data type is not supported in distributed queries" and workaround for it
Recently while working with data migration,got an error while running a following query where Server ...