left join 能否只返回 右边集合的第一行?
SELECT S.manufactureno ,SAMPLE_COLORS.COLOR_CODE ,SIZERATIO.SIZECODE ,'1','1000'
FROM SAMPLE S
LEFT JOIN SIZEGROUP ON S.SIZEGROUPID = SIZEGROUP.SIZEGROUPID AND rownum=1
LEFT OUTER JOIN SAMPLE_COLORS ON S.SAMPLENO = SAMPLE_COLORS.SAMPLENO AND rownum=1
LEFT JOIN SIZERATIO ON SIZERATIO.SIZEGROUPID=S.SIZEGROUPID AND SIZERATIO.SIZEID='01' AND rownum=1
WHERE S.BUYMEETING LIKE '%2015%'
------解决思路----------------------
只返回第一行是指什么呢。对应sample表每条记录的第一条,还是右边总共只返回一条
------解决思路----------------------
这样的话还是写子查询来得好
SELECT S.manufactureno,
(select SAMPLE_COLORS.COLOR_CODE
from SAMPLE_COLORS
where S.SAMPLENO = SAMPLE_COLORS.SAMPLENO
and rownum = 1) COLOR_CODE,
(select SIZERATIO.SIZECODE
from SIZERATIO
where SIZERATIO.SIZEGROUPID = S.SIZEGROUPID
AND SIZERATIO.SIZEID = '01'
AND rownum = 1) SIZECODE,
'1',
'1000'
FROM SAMPLE S
WHERE S.BUYMEETING LIKE '%2015%'
貌似SIZEGROUP?表没用。有用的话也一样加上去
------解决思路----------------------
右边连接表子查询一次
------解决思路----------------------
估计他的意思是,用多个左关联多个表后,查询出来的结果集中是否还可以保持最右边表集合的记录条数,
我的理解是,无论多少次,返回的结果集都是最右边的那个结果集的记录条数;
可以
SELECT count(1) FROM ('关联后的结果集'),一个一个的加上去看看,记录是否发生变化。
------解决思路----------------------
看看提问的智慧,给个示例,或者把测试数据拿来,原始+想要的。