0

番号を増やさずにテーブルデータを結合したかったのです。行の。
そして、2つのテーブルは主キーなしで結合しています。両方に共通の列の助けを借りてのみ、他の列はまったく関連していないため、結果に使用できる他の列はありません。

表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 

これを行う方法..このリンクを見てください..

4

1 に答える 1

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
于 2013-01-01T04:06:21.013 に答える