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%'
6 个解决方案
#1
只返回第一行是指什么呢。对应sample表每条记录的第一条,还是右边总共只返回一条
#2
最好是只返回SAMPLE_COLORS 和SIZERATIO 的符合条件的第一行 记录。
#3
这样的话还是写子查询来得好
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 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 表没用。有用的话也一样加上去
#4
右边连接表子查询一次
#5
估计他的意思是,用多个左关联多个表后,查询出来的结果集中是否还可以保持最右边表集合的记录条数,
我的理解是,无论多少次,返回的结果集都是最右边的那个结果集的记录条数;
可以
SELECT count(1) FROM ('关联后的结果集'),一个一个的加上去看看,记录是否发生变化。
我的理解是,无论多少次,返回的结果集都是最右边的那个结果集的记录条数;
可以
SELECT count(1) FROM ('关联后的结果集'),一个一个的加上去看看,记录是否发生变化。
#6
看看提问的智慧,给个示例,或者把测试数据拿来,原始+想要的。
#1
只返回第一行是指什么呢。对应sample表每条记录的第一条,还是右边总共只返回一条
#2
最好是只返回SAMPLE_COLORS 和SIZERATIO 的符合条件的第一行 记录。
#3
这样的话还是写子查询来得好
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 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 表没用。有用的话也一样加上去
#4
右边连接表子查询一次
#5
估计他的意思是,用多个左关联多个表后,查询出来的结果集中是否还可以保持最右边表集合的记录条数,
我的理解是,无论多少次,返回的结果集都是最右边的那个结果集的记录条数;
可以
SELECT count(1) FROM ('关联后的结果集'),一个一个的加上去看看,记录是否发生变化。
我的理解是,无论多少次,返回的结果集都是最右边的那个结果集的记录条数;
可以
SELECT count(1) FROM ('关联后的结果集'),一个一个的加上去看看,记录是否发生变化。
#6
看看提问的智慧,给个示例,或者把测试数据拿来,原始+想要的。