sql-对SQL语句级联查询的一些理解,各位进来看我说的对不对?

问题描述

对SQL语句级联查询的一些理解,各位进来看我说的对不对?
 外联是通过n去查询1
 例如select * from A left join B on B.id=A.bid
 内联是通过1去查询n
 例如select * from A,B

 自己的一些理解

解决方案

 不是,left join和inner join的区别是,left join会取得左表有记录,但是右表没有的。比如
左表:
id 省
1 河北
2 山东
3 辽宁
右表
省id 城市
1 石家庄
1 邢台
2 青岛
2 济南
那么leftjoin得到
1 河北 石家庄
1 河北 邢台
2 山东 青岛
2 山东 济南
3 辽宁 null
innerjoin得到
1 河北 石家庄
1 河北 邢台
2 山东 青岛
2 山东 济南

解决方案二:

http://blog.csdn.net/renwotao2009/article/details/45228649

解决方案三:

分类
内联和外联
外联包含 左右链接 和 full out join

解决方案四:

http://blog.csdn.net/o527883184/article/details/51164961

如图

时间: 2024-11-03 10:42:24

sql-对SQL语句级联查询的一些理解,各位进来看我说的对不对?的相关文章

Oracle数据库中的级联查询、级联删除、级联更新操作教程_oracle

级联查询在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior selfid=parentid //联接条件为子接点等于父接点,不能反 这个SQL主要用于菜单的级联查询,给一个父接点可以查出所有的子接点.及子接点的子接点,一查到底,很实用.不过呢这个程序只能在orac

通过非动态SQL语句在SQL Server中执行动态查询

问题: 我尝试在一个存储过程中传递一系列以逗号划定界限的值,以限制结果集.但是无论什么时候,我在 IN子句中使用变量,都会得到错误信息.是否存在一种不执行动态SQL语句也能完成查询的方式呢? 专家解答: 这里存在一种不执行动态SQL语句也能完成查询的方式,但是首先让我们来探究这个问题.我将在以下 例子中运用AdventureWorks数据库. 在你只有一个值的时候,执行将不会有什么问题. Declare @ManagerIDs Varchar(100) Set @ManagerIDs = '3'

jdbc 动态sql语句拼接 查询不出结果

问题描述 jdbc 动态sql语句拼接 查询不出结果 public List queryByCondition(String command String description) { // message列表 List messageList = new ArrayList(); try { // 加载驱动 Class.forName(""com.mysql.jdbc.Driver""); // 数据库的连接 Connection conn; conn = Dri

oracl数据库sql语句怎么查询工资最低的两名员工编号,姓名,工资等信息。

问题描述 oracl数据库sql语句怎么查询工资最低的两名员工编号,姓名,工资等信息. 查询每个部门工资最低的两个员工编号,姓名,工资,等信息.关键是工资最低的两名员工 解决方案 SELECT * FROM ( SELECT bumen, price, ROW_NUMBER () OVER ( PARTITION BY bumen ORDER BY bumen, price DESC ) rn FROM table1 WHERE bumen IN ( SELECT bumen FROM tabl

在java类中写带中文的sql语句,查询结果为空

问题描述 在java类中写带中文的sql语句,查询结果为空 String query="select * from Restaurant where Restaurant_name='紅樹林';"; rs=stm.executeQuery(query); 这是我在封装好的数据库类中写的sql语句,查询结果为空(rs.next() 为false ) 如果改用id查询,即: String query="select * from Restaurant where Restaura

sql语句连接查询的问题

问题描述 我现在有两张表,一张target目标表,一张费用表,目标表一个用户每个月就一条记录,比如设定的各个要完成的目标,费用表可能一个月有好几条记录,记录已完成的数据,表之间的关联用用户的ID,现在遇到问题,想在一个列表中展示目标数据和已完成数据,目标表有目标月份日期字段,费用表有生效日期字段目标月份 目标标保 已完成标保 目标佣金 已完成佣金 目标件数 已完成件数2012-11 1000 500 200000 2000 500 50我现在sql语句如下 select SALES_CODE,t

sql语句怎么查询数据库最新两天的数据

问题描述 sql语句怎么查询数据库最新两天的数据 我不知道我的数据库最新数据是哪天的,我要查询最新两天的所有数据,sql语句改怎么写,怎么写后面的 解决方案 http://blog.csdn.net/hanjingjingpan/article/details/6022014 如果是48小时内 select * from info where DateDiff(hh,datetime,getDate())<48 如果是2天内 SELECT * FROM A where datediff(d,da

如何在 Linux 上用 SQL 语句来查询 Apache 日志

如何在 Linux 上用 SQL 语句来查询 Apache 日志 Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志. 这次,我们会通过另类的途径来分析 Apache access 日志,我们使用的工具是 asql.asql 是一个开源的工具,它能够允许

sql 查询指定日期时间记录sql语句与查询实例

sql 查询指定日期时间记录sql语句与查询实例  首先创建一个表abc结构如下    CREATE TABLE `cc`.`loup` (  `id` INT( 4 ) NOT NULL AUTO_INCREMENT ,  `datetimes` INT( 4 ) NULL ,  `ipaddress` VARCHAR( 20 ) NULL ,  PRIMARY KEY ( `id` )  ) ENGINE = MYISAM    再批量插入数据    INSERT INTO `loup` (