--内连接查询 --需求:查询显示业主编号.业主名称.业主类型名称 select os.id 业主编号,os.name 业主名称,ot.name 业主类型名称 from t_owners os,t_ownertype ot where os.ownertypeid=ot.id --需求:查询显示业主编号.业主名称.地址和业主类型 select ow.id 业主编号,ow.name 业主名称,ad.name 地址,ot.name 业主类型 from t_owners ow,t_ownertype…
一.问题描述 有时我们为了保留某个表中的数据,而该表中的数据在另外一个关联表中未必都存在对应,此时就应该试用外连接查询. 比如:两个表,产品表和子产品表 注:子产品的parent_product_id便是产品表的id 产品可以有子产品,也可以没有子产品 遇到类似的问题需要使用外连接查询,保证所有的产品被查询出来,而其对应的子产品也在查询结果中. 二.问题解决 1.基础概念 笛卡尔积:例如,A={a,b}, B={0,1,2},则 A×B={(a, 0), (a, 1), (a, 2), (b,…
oracle的全连接查询可以直接用full on,但是在mysql中没有full join,mysql使用union实现全连接. oracle的全连接 select * from a full join b on a.id = b.id; mysql的全连接 select * from a left join b on a.id = b.id union select * from a right join b on a.id = b.id; 参考: https://blog.csdn.net/…
首先讲解一下 on 与where后面接的条件的区别 on和where条件的区别如下:1. on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录.2.where条件是在临时表生成好后,再对临时表进行过滤的条件.这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉.(1,1那条数据就是left join的原则 必须返回左边表的记录,而应该显示的b表的数据就被过滤掉了) 内外连接是主要区别就是主表的数据是否有过滤操作.例如有两张表(…
--带出参的存储过程的创建和调用 create or replace procedure pro_owners_add1 ( v_name varchar2,--名称 v_addressid number,--地址编号 v_housenumber varchar2,--门牌号 v_watermeter varchar2,--水表号 v_ownertypeid number,--业主类型 v_id out number ) is begin select seq_owners.nextval in…
--创建业主序列起始值为11 ; --不带传出参数的存储过程 create or replace procedure pro_owners_add ( v_name varchar2,--名称 v_addressid number,--地址编号 v_housenumber varchar2,--门牌号 v_watermeter varchar2,--水表号 v_ownertype number--业主类型 ) is begin insert into t_owners values(seq_ow…
where 连接 select * from a,b //使用的是笛卡尔乘积  显示 a.count*b.count 条数 select * from a,b where a.id=b.id 其实只是显示的隐藏了笛卡尔乘积,但是乘积并没有消失 且where 关联与 inner join 效果是一致的,都是取的并集,也就是双方都存在的id left join on 连接 select * from a left join b on a.id=b.id  where  条件  //左连查询,以左为主…
注意:  关键的地方是where 语句的加入. 在11G中, 如果不加11G , 或造成除匹配的行数更新为相应的值之后, 其余的会变成负数. 所以,执行前需要测试, 普通办法就是:  先查看需要更新的数量即连接的数量究竟有多少行, 然后update 之后多少行, 才能确定条件是否正确. 最终完成的2个 SQL, 经过检验, 放心食用:  1 :   通过关联表查询获取需要更新的 多列 数据更新. 注意Exists子句的必要性 , , B.CURRENT_QTY  : 如上简化版. AND A.R…
类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 CLASS表(student表中记录class的班级id信息,字段名为classid) 左外连接查询: 关键字: left join ...on 语句:select * from STUDENT s left join CLASS c on s.classid = c.id; 右外连接查询: 关键字…
IBatis.Net之多表查询: 一.定制实际对应类的方式 首先配置多表的测试数据库,IBatis.Net之Oracle表连接查询配置: 首先新建两张表如下: 为两张表建立外键: ALTER TABLE Person ADD CONSTRAINT FK_COUNTRY_PERSON FOREIGN KEY(CountryId) REFERENCES Country(Id); 程序中,建立一个PersonCountry.xml <?xml version="1.0" encodin…