在进行查询操作时,我们通常需要查询两个关联表的数据,我们可以使用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

举例说明连接操作的结果:
表X
A   B   C  
a1 b1 c1
a2 b2 c2
a3 b3 c3

表Y
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

X left outer join Y using(B)
  A     B     X.C     Y.C     D  
  a1   b1   c1   c1   d1
  a2   b2   c2   c2   d2
  a3   b3   c3   null     null
												

SQL如何查询两个表的数据的更多相关文章

  1. SQL联合查询两个表的数据

    刚有个项目,需要查询水位数据表中的水位信息,及查询降雨量表中统计时段降雨量的数据,以计算出日降雨量,而且时段是前一天8时到后一天8时总共24个小时. 两个子查询: 1.根据当前时间判断统计前天8时到今 ...

  2. php同时查询两个表的数据

    业务环境,表一 会员等级表, 表二会员表, 有一个字段是相同的 会员等级ID level 在会员的显示页面要直接显示会员的会员等级名称,不是等级ID. 1.同时查询两个表 2.表设置别名, selec ...

  3. django同时查询两张表的数据,合并检索对象返回

    原始需求: 1.一篇文章内容分N个版块,每篇文章的版块数量不同. 2.有个文章搜索功能,需要同时搜索标题和内容. 实现思路: 1.由于每篇文章的内容版块数量不同,因此将每个文章的标题和内容分开存入2张 ...

  4. SQL高效查询两个表不同的数据

    逻辑相对复杂,但是速度最快: )

  5. MySQL关系表查询两个表的数据

    如下,有四张表:游戏类型表,游戏表,点卡和游戏关系表,点卡表 CREATE TABLE `gamesType`( `tId` INT AUTO_INCREMENT NOT NULL PRIMARY K ...

  6. mysql左连接右连接(查询两张表不同的数据)

    有两张表:一张A表he一张B表 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 :right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: ...

  7. SQL 统计两个表的数据,按同一日期分组

    思路:把两个表的数据按日期整合到临时表在按日期分组,求和. 例子: SELECT t.dateTime AS '日期',SUM(t.money) AS '表1利息',SUM(t.interest) A ...

  8. hive sql 查询一张表的数据不在另一张表中

    有时,我们需要对比两张表的数据,找到在其中一张表,不在另一张表中的数据 hql 如下: SELECT * FROM (SELECT id FROM a WHERE dt = '2019-03-17' ...

  9. Oracle 取两个表中数据的交集并集差异集合

    Oracle 取两个表中数据的交集 关键字: Oracle 取两个表中数据的交集 INTERSECT Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要 ...

随机推荐

  1. Getting Text Metrics in Firemonkey(delphiscience的博客)

    Firemonkey’s abstract TCanvas class has been providing the dimensions of the bounding rectangle of s ...

  2. JavaScript 中的数字和日期类型

    本章节介绍如何掌握Javascript里的数字和日期类型 数字EDIT 在 JavaScript 里面,数字都是双精度浮点类型的 double-precision 64-bit binary form ...

  3. Yii创建前台和后台登录表单和通过扩展 CWebUser 增加信息到 Yii::app()->user

    我参考了这篇文章来构建项目的前台和后台的目录结构.感谢Andy的这篇文章.按照所有的步骤,您将有单独的前台和后台面板,如: http://localhost/index.php // 前台 http: ...

  4. 【转】Linux下tar.xz结尾的文件的解压方法

    原文网址:http://blog.csdn.net/silvervi/article/details/6325698 今天尝试编译内核,下载到了一份tar.xz结尾的压缩文件,网上解决方法比较少,不过 ...

  5. 【Linux】部署apache

    部署前的准备: 1.安装apr #wget http://mirror.bit.edu.cn/apache/apr/apr-1.4.8.tar.gz #tar -zxvf apr-1.4.8.tar. ...

  6. LA 4794 - Sharing Chocolate dp

    题意 有一块\(x*y\)的巧克力,问能否恰好分成n块,每块个数如下 输入格式 n x y a1 a2 a3 ... an 首先\(x \times y 必然要等于 \sum\limits_{i=1} ...

  7. [Qt] QString 和 char* 转换

    (1) QString 转 char* char acResult[10240]; //QByteArray baResult = strResult.toLatin1(); QByteArray b ...

  8. JScript_Test

    Hello SyntaxHighlighter function helloSyntaxHighlighter() { return "hi!"; } function hello ...

  9. oracle中 connect by prior 递归算法

    Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename sta ...

  10. 共享IP云主机(VPS)玩转wdcp

    目前国内有不少性能还不错的共享IP VPS,但因为没有独立IP,所以环境配置起来会比较麻烦. 因为本人自己现在用的就是共享IP的vps,所以把一些配置方法分享一下,供大家参考. 首先是系统的选择,根据 ...