想用第一个selec的结果作为第二个select的查询条件

[复制链接]
查看11 | 回复9 | 2010-3-1 11:08:29 | 显示全部楼层 |阅读模式
想用第一个selec的结果作为第二个select的查询条件, 怎么实现, 谢谢
Table A
Col1 Col2
A1a1
A2a2
Table B
Col1 Col2
B1b1
B2b2
B2b3
第一个查询 SELECT col2 FROM B where col1= 'B2'
Col2
b2
b3
第二个查询
SELECT * FROM A
WHERE col1 = 'A1'
并且满足条件
B.col2 = b2
这样写不行
SELECT * FROM A
WHERE col1 = 'A1'
AND (SELECT col2 FROM B WHERE col1= 'B2' ) = 'b2'
ERROR: ORA-01427: 单行子查询返回多于一个行
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
a表和b表有关系吗?
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
没有, 有的话可以表连接
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
没有关系的表没必要连接
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
不大明白LZ的意思,看看这个可不可以:
select A.col1,A.col2 from A,B
where A.col1='A1'
and A.col2=(select col2 from B where col1= 'B2' and rownum<2);
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
原帖由 gvora 于 2008-12-31 14:08 发表
不大明白LZ的意思,看看这个可不可以:
select A.col1,A.col2 from A,B
where A.col1='A1'
and A.col2=(select col2 from B where col1= 'B2' and rownum

---谢谢 gvora,
table A 和 table B, 是没有关联的.
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
原帖由 hpperson 于 2008-12-31 14:20 发表

---谢谢 gvora,
table A 和 table B, 是没有关联的.

恩,我就是没用到关联。
(SELECT col2 FROM B WHERE col1= 'B2' ) = 'b2'
不清楚'b2'是怎么来的,是一个字符常量还是通过检索结果得到的?
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
Table B
Col1 Col2
B1b1
B2b2
B2b3
b2 是 table B的一个vaule
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
select * from A where A.col1 = 'A1' and exists(SELECT 1 FROM B where B.col1= 'B2' and B.col2 = 'b2');
回复

使用道具 举报

千问 | 2010-3-1 11:08:29 | 显示全部楼层
原帖由 bell6248 于 2008-12-31 15:37 发表
select * from A where A.col1 = 'A1' and exists(SELECT 1 FROM B where B.col1= 'B2' and B.col2 = 'b2');


xiele
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行