我想在不增加no的情况下加入表数据。行。
并且这两个表在没有主键的情况下加入,只有两个列中共有的列的帮助,没有其他列可以用于结果,因为没有其他列完全相关。
表1
id1(pk) name country clm_id
1 abc 3 23
2 abc 4 23
表2
id2(pk) city state clm_id
1 cdv 5 23
2 sdc 5 23
我希望通过clm_id 加入这些表,但它给了我4行, 我想要
id1 name country clm_id id2 city state
1 abc 3 23 1 cdv 5
2 abc 4 23 2 sdc 5
但我正在
id1 name country clm_id id2 city state
1 abc 3 23 1 cdv 5
1 abc 3 23 2 sdc 5
2 abc 4 23 1 cdv 5
2 abc 4 23 2 sdc 5
怎么做... 请查看此链接.. example
答案 0 :(得分:6)
可能你正在加入下面的这个产生笛卡尔积的产品。
SELECT a.*, b.*
FROM table1 a,table2 b
这应该是非常直接的。
SELECT a.*, b.*
FROM table1 a
INNER JOIN table2 b
ON a.id1 = b.id2
要了解更多信息,请参阅以下链接。
更新1
SELECT b.FLD_CUSTOMER_CLAIM_ID,
FLD_CUSTOMER_REG_CONTACT_ID,
FLD_TYPE,
FLD_NAME,
FLD_EMAIL_ID,
FLD_MOBILE,
FLD_DEPARTMENT,
FLD_ROLE,
FLD_SALUTATION,
FLD_CRM_CUSTOMER_REG_TAX_ID,
FLD_TAX_TYPE,
FLD_APPLICABLE_FLAG,
FLD_MANUAL_FILLING_FLAG,
FLD_EFILLING_FLAG
FROM
(
SELECT @row:=@row+1 RowNo, a.*
FROM TBL_CUSTOMER_REGISTRATION_CONTACT_DETAILS a, (SELECT @row:=0) s
WHERE a.FLD_CUSTOMER_CLAIM_ID = 32768
) b INNER JOIN
(
SELECT @rowB:=@rowB+1 RowNo, a.*
FROM TBL_CUSTOMER_REGISTRATION_TAX_DETAILS a, (SELECT @rowB:=0) s
WHERE a.FLD_CUSTOMER_CLAIM_ID = 32768
) c ON b.RowNo = c.RowNo