首页 > 数据库技术 > 详细

sql 如何应对子查询返回数据有多条 我就是要返回数据有多条

时间:2014-03-14 15:59:07      阅读:450      评论:0      收藏:0      [点我收藏+]
SELECT
	*
FROM
	SUSE_DEV.PROJECT_LISTING
INNER JOIN SUSE_DEV.PROJECT_AUCTION ON SUSE_DEV.PROJECT_LISTING.PROJECT_CODE on (
	SELECT
		*
	FROM
		SUSE_DEV.PROJECT_AUCTION
	WHERE
		SUSE_DEV.PROJECT_AUCTION.GMT_START > SYSDATE
)




这段SQL里的子查询是肯定会返回多条的。一般来说,用ON是根本不能解决这样的问题,有些人说,可以用 

and rownum = 1
SELECT
	*
FROM
	SUSE_DEV.PROJECT_LISTING
INNER JOIN SUSE_DEV.PROJECT_AUCTION ON SUSE_DEV.PROJECT_LISTING.PROJECT_CODE on (
	SELECT
		*
	FROM
		SUSE_DEV.PROJECT_AUCTION
	WHERE
		SUSE_DEV.PROJECT_AUCTION.GMT_START > SYSDATE and rownum = 1

)

这样只能处理返回的值的的确确只有一条的情况,那如果我要返回的有多条呢?答案就是用in
SELECT
	*
FROM
	SUSE_DEV.PROJECT_LISTING
INNER JOIN SUSE_DEV.PROJECT_AUCTION ON SUSE_DEV.PROJECT_LISTING.PROJECT_CODE IN (
	SELECT
		*
	FROM
		SUSE_DEV.PROJECT_AUCTI
IN
	WHERE
		SUSE_DEV.PROJECT_AUCTION.GMT_START > SYSDATE
)
这样就可以了。有人说用exists也可以,我没有试过。有兴趣大家可以试试。

sql 如何应对子查询返回数据有多条 我就是要返回数据有多条,布布扣,bubuko.com

sql 如何应对子查询返回数据有多条 我就是要返回数据有多条

原文:http://blog.csdn.net/hjm4702192/article/details/21229405

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!