表1 - DBT_C_INT_ACCRJOIN表查询给人怪异的结果
select INT_ACC.BRCH_CODE, INT_ACC.PROD_CODE, INT_ACC.REF_ID from DBT_C_INT_ACCR INT_ACC where BRCH_CODE = 784 and PROD_CODE = 'GF' and REF_ID = 'GFE1200077';
BRCH_CODE PROD_CODE REF_ID
784 GF GFE1200077
784 GF GFE1200077
784 GF GFE1200077
784 GF GFE1200077
表2 - dbt_c_rate_refresh
select INT_ACC.BRCH_CODE, INT_ACC.PROD_CODE, INT_ACC.REF_ID from dbt_c_rate_refresh INT_ACC where BRCH_CODE = 784 and PROD_CODE = 'GF' and REF_ID = 'GFE1200077';
BRCH_CODE PROD_CODE REF_ID
784 GF GFE1200077
784 GF GFE1200077
784 GF GFE1200077
784 GF GFE1200077
784 GF GFE1200077
784 GF GFE1200077
784 GF GFE1200077
现在,当下面尝试加入,它给了28行,而不是4排。任何解释吗?
select INT_ACC.ref_id, RATE_REFRESH.ref_id from DBT_C_INT_ACCR INT_ACC left OUTER JOIN dbt_c_rate_refresh RATE_REFRESH ON (INT_ACC.BRCH_CODE = RATE_REFRESH.BRCH_CODE and INT_ACC.PROD_CODE = RATE_REFRESH.PROD_CODE and INT_ACC.REF_ID = RATE_REFRESH.REF_ID)
where INT_ACC.BRCH_CODE = '784' and INT_ACC.PROD_CODE = 'GF' and INT_ACC.REF_ID = 'GFE1200077';
REF_ID REF_ID_1
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
GFE1200077 GFE1200077
它给出了相同的号码。任何类型的加入结果.. –
您正在使用哪个RDMS ... mysql或oracle?当您加入多对多关系时,它会在连接中提供多行。 – mituw16
Oracle one ...... –