表一:t1字段有mc表二:t2
字段有mc和lbt1根据mc相同,获取mc对应的lb怎么写比较好,数据量很大:几万到几十万
字段有mc和lbt1根据mc相同,获取mc对应的lb怎么写比较好,数据量很大:几万到几十万
解决方案 »
- 表名+变量名是做什么用地?
- pl/sql developer 中文问题
- oracle10g修改了监听端口,sys用户在PL/SQL中能登陆,sqlplus中无法登陆?
- oracle 10g ORA-01555
- 请教一个ADO 连接Oracle的问题。
- ORCLE10G 应用程序插入数据失败
- 求一sql语句,各位大虾帮忙!!!!!!!!!!!!!!!!!!
- 第一次安装学习oracle 9i (9.2.0.1.0) 并还原了一备份数据库 但不知道在那个菜单下可以找到表?
- 怎样把一个数据表中的数据有纵向显示成横向,详见内容
- 为什么不能安装ORACLE 8I
- sql语句的表名可以是另一条语句的结果吗?具体如下
- Oracle 10g R2安装问题,在线等。。。
select * from t1 a,t2 b where a.mc=b.mc(+) and lb='1' or lb='2'就出错,怎么改写达到同样目的呢
这里t1和t2里都含有mc这个column,所以会报错select t1.*, t2.* from t1 a,t2 b where a.mc=b.mc(+) and lb='1' or lb='2'或者只是把你关系的column显示的写到select ... from里
你的查询是不是这个意思?OPER@tl> select * from test; AAA
----------
1
2
3
4
5
6
7
8
9已选择9行。OPER@tl> select * from test2; AAA BBB
---------- --------------------
1 a
2 a
4 c
7 b
8 c
9 b已选择6行。OPER@tl> select aaa,decode(bbb,'a',bbb,'c',bbb,null)
2 from (
3 select a.aaa,b.bbb
4 from test a,test2 b
5 where a.aaa=b.aaa(+))
6 order by aaa
7 / AAA DECODE(BBB,'A',BBB,'
---------- --------------------
1 a
2 a
3
4 c
5
6
7
8 c
9已选择9行。OPER@tl>
----
这点小数据没啥影响的。
普通的连接sql就可以了啊。
如果仅选4条记录,那不存在左连接。
直接
select * from t1 a,t2 b where a.mc=b.mc
SELECT T1.MC,T2.LB FROM T1 INNER JOIN T2 ON T1.MC=T2.MC;
这样可以将笛卡尔乘积避开,将最少的记录做连接。如果两表在MC上还建有索引的话,哪就是瞬间的事情了。
另外,大家都都说内连接其实跟直接做笛卡尔乘积是同样的,完全等价的,是这样吗?
SELECT * FROM A,B WHERE A.ID=B.ID;
与
SELECT A.* FROM A INNER JOIN B ON A.ID=B.ID;
是一样的吗?除了结果是一样的外,他们的处理过程是一样的吗?