如何只加入表而不是行

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)

怎么做..请看这个链接.. 例子

Joh*_*Woo 6

可能你正在加入下面的这个,它生产笛卡儿产品.

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)