在进行查询操作时,我们通常需要查询两个关联表的数据,我们可以使用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. android 适配器simpleadapter和baseadapter区别

    android 适配器 simpleadapter 和 baseadapter 设计网络程序或者数据处理显示程序的时候,常常会使用 simpleadapter 和baseadapter 来实现. ad ...

  2. 如何打一手好Log(转)

    如果项目上过线的话,那你一定知道Log是多么重要. 为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题.这时打一手好Log的重要性绝不亚于写一手好代码.项目出问题时,你要能拿出 ...

  3. 【转】ActionBar的基本用法

    原文网址:http://irtutsk.iteye.com/blog/2117707 ActionBar的组成: [1]AppIcon:标题区,显示应用程序图标和标题,也可以自定义. [2]ViewC ...

  4. Http请求工具实例编写

    HTTP协议工作方式首先客户端发送一个请求(request)给服务器,服务器在接收到这个请求后将生成一个响应(response)返回给客户端.在这个通信的过程中HTTP协议在以下4个方面做了规定:1. ...

  5. bzoj3995[SDOI2015]道路修建

    http://www.lydsy.com/JudgeOnline/problem.php?id=3995 线段树维护连通性. 我们发现,对于一个区间[L,R],我们只需要知道(1,L),(2,L),( ...

  6. DELPHI7如何调用带参数的JAVA WebService

    对方提供的WebService地址是http://192.168.1.6:8080/test/pic?XH=XX用DELPHI如何调呢 ------解决方案--------------------通过 ...

  7. C# 同步/并发队列ConcurrentQueue (表示线程安全的先进先出 (FIFO) 集合)

    http://msdn.microsoft.com/zh-cn/library/dd267265(v=vs.110).aspx static void Main(string[] args) { // ...

  8. javascript中this、apply、call、bind的用法和区别

    参考阮一峰文章链接:http://javascript.ruanyifeng.com/oop/basic.html#toc10

  9. mysql存储过程、函数和触发器的创建 [转]

    http://blog.itpub.net/559237/viewspace-438942/ 今天花了半天时间来研究mysql的存储过程函数和触发器的创建,觉得和oracle的大同小异,只是语法上更艰 ...

  10. google login page

    </pre><pre name="code" class="html"><div class="container&qu ...