sou*_*ode 0 mysql sql select join
我想加入表数据而不增加no.的行.
并且这两个表在没有主键的情况下连接,只有在两者中共有的列的帮助下,没有其他列可以用于结果,因为没有其他列完全相关.
表格1
id1(pk) name country clm_id
1 abc 3 23
2 abc 4 23
Run Code Online (Sandbox Code Playgroud)
表2
id2(pk) city state clm_id
1 cdv 5 23
2 sdc 5 23
Run Code Online (Sandbox Code Playgroud)
我想通过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
Run Code Online (Sandbox Code Playgroud)
但我得到了
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
Run Code Online (Sandbox Code Playgroud)
怎么做..请看这个链接.. 例子
可能你正在加入下面的这个,它生产笛卡儿产品.
SELECT a.*, b.*
FROM table1 a,table2 b
Run Code Online (Sandbox Code Playgroud)
这应该是非常直接的.
SELECT a.*, b.*
FROM table1 a
INNER JOIN table2 b
ON a.id1 = b.id2
Run Code Online (Sandbox Code Playgroud)
要了解更多有用的联接,请参阅以下链接.
更新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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139 次 |
最近记录: |