用SQL进行多表查询

  所谓多表查询是相对单表而言的,指从多个数据表中查询数据,这里我们主要学习从两个数据表中如何查询数据的方法。
4.3.1 无条件多表查询
    无条件多表查询是将各表的记录以“笛卡尔”积的方式组合起来。
    如scott.dept表共有4条记录,scott.emp表共有14条记录,其“笛卡尔”积将有4*14=56条记录。
    在【命令编辑区】执行下列语句。
    ――――――――――――――――――――――――――――――――――――――
    select emp.empno,emp.ename,emp.deptno,dept.dname,dept.loc from scott.emp,scott.dept;     ――――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.16所示的结果。
    【参见光盘文件】:\第4章\4.3\431.sql。

4.3.2 等值多表查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno, emp.ename, emp.deptno, dept.dname,dept.loc from scott.emp,scott.dept where     scott.emp.deptno=scott.dept.deptno;
    ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.17所示的结果。
    【参见光盘文件】:\第4章\4.3\432.sql。

    等值多表查询将按照等值的条件查询多个数据表中关联的数据。要求关联的多个数据表的某些字段具有相同的属性,即具有相同的数据类型、宽度和取值范围。
4.3.3 非等值多表查询
    在【命令编辑区】执行下列语句。
    ―――――――――――――――――――――――――――――――――――――
    select emp.empno, emp.ename, emp.deptno, dept.dname,dept.loc from scott.emp,scott.dept where     scott.emp.deptno!=scott.dept.deptno and scott.emp.deptno=10;     ―――――――――――――――――――――――――――――――――――――
    单击【执行】按钮,出现如图4.18所示的结果。
    【参见光盘文件】:\第4章\4.3\433.sql。

    在非等值多表查询中,读者可以使用表4.1所示的比较运算符来组合查询条件。

时间: 2024-09-19 09:11:58

用SQL进行多表查询的相关文章

sql语句多表查询中聚合函数的使用问题

问题描述 sql语句多表查询中聚合函数的使用问题 表A,B,C. A表中有title,code, b表中为code,media_code;(均不为主键,code会有重复) c表中有media_code,shrink (media_code为主键) 我的目的为取出A表中的title和c表中的shrink 联立:A.code→B.code, B.media_code→C.media_code 代码如下 select title,shrink from tableA,tableC where medi

sql语句 连表查询-连表查询 sql语句问题

问题描述 连表查询 sql语句问题 有个商品表,和商品属性表,一个商品,在商品属性表里有好几条,我想连表查出,一条商品对应的两个属性,两个属性在一行显示,怎么查,属性表的数据是这样 1 商品id 规格 2 商品id 厂家 我想要的结果: 1 商品id 规格 厂家 大能们,帮帮忙 解决方案 查询库中有多少表的SQL语句单表查询树形结构的SQL语句命名查询的sql语句的问题 解决方案二: 你select出来的结果当成colum

用SQL进行单表查询

  单表查询是相对多表查询而言的,指从一个数据表中查询数据.4.2.1 查询所有的记录    在[命令编辑区]执行输入"select * from scott.emp",然后单击[执行]按钮,出现如图4.3所示的emp数据表所有记录.    [参见光盘文件]:\第4章\4.2\421.sql.    select * from 数据表,这里的"*"代表数据表中所有的字段.4.2.2 查询所有记录的某些字段    在[命令编辑区]输入"select empn

SQL Server 交叉表查询 case_MsSql

代码如下所示: 表landundertake结构如下所示: 表appraiser结构如下所示: access代码: 复制代码 代码如下: TRANSFORM First(Landundertake.valuerId) AS valuerId之First SELECT Appraiser.quarterId, Landundertake.landCode FROM Landundertake INNER JOIN Appraiser ON (Landundertake .valuerId = Ap

SQL Artisan多表查询和统计

sql|统计    编写基于几个表的关联查询和统计的确是件烦琐的事情,由于基于字符的描述很多信息难以抽取出来共用,当其他地方需要这种情况的时候又必须重写.为了避免这情况SQL Artisan引用了视图对象,通过视图对象描述数据查询的信息:视图对象有一个最大的好处就是继承,可以从一个已经有的对象(实体对象或视图对象)继承下来扩展新的查询功能描述.实际应用中你可以建立一个基础统计视图对象,然后根据情况派生出具体的统计对象(如:根据不同信息分组,显示那些字段信息等). 下面是一些简单例程代码:    

Sql Server 数据库表查询结果导出为excel文件

相信大家常常会遇到将SqlServer查询结果导出到Excel的问题.如果导出的次数少,直接"Save Results As..."就是了; 1.1准备好查询语句 1.2选择数据库,启动导入和导出向导 1.3选择数据源 1.4选择目标 1.5 1.6 1.7 1.8 后续步骤不再附图,一直点"下一步"按钮就好. 2.但是当要分别在每个表取样,那就相当麻烦了.今天就为大家提供一个脱离office组件的可以将语句结果导出到Excel的过程,希望会对大家有帮助! ---导

SQL合并多表查询记录的存储过程

思路:将查询到的记录保存进一个临时表,再在临时表中进行查询,用完后删除临时表: select * from dbo.PE_NodesCREATE PROCEDURE [dbo].[PR_GetNodeInfoByNodeID]@Nodeid INT   declare  @str  varchar(300),@id  varchar(300),@m  int,@n  intselect * into temp from dbo.PE_Nodes where 1=0  --select * int

显示-用vb.net连接sql做的表名查询

问题描述 用vb.net连接sql做的表名查询 用vb.net连接sql做的表查询将查找到的表用DataGridView显示出来,现在的问题是如何选中一个表然后跳转到另一个窗口进行查询表内容 解决方案 编写CellClick事件的处理函数,获取所在单元格的所在行,根据id去查询,然后显示出来. 窗体传值参考我的例子 http://bbs.csdn.net/topics/360140208 解决方案二: 问题是不知道怎么获得DataGridView显示的表名 解决方案三: DataGridView

SQL基础-->多表查询

--========================== --SQL基础-->多表查询 --========================== /* 一.多表查询     简言之,根据特定的连接条件从不同的表中获取所需的数据       笛卡尔集的产生条件:        省略连接条件        连接条件无效        第一个表中的所有行与第二个表中的所有行相连接             二.多表查询语法:*/     SELECT table1.column, table2.colu