-1

我有一个表idm_track,它有 3 个组合dw_dealer_id,我想将这个表与另一个表和另一个也有这三个组合的表连接起来,dw_program_id并且,我试图像这样编写 SQL dw_product_idism_interactiondw_dealer_iddw_program_iddw_product_id

   SELECT    
      dw_itrack_id   
   FROM
     idm_itrack
   WHERE
      dw_dealer_id, 
      dw_product_id, 
      dw_program_type_id exists ( select  
                                   dw_dealer_id, 
                                   dw_product_id, 
                                   dw_program_type_id
                                    FROM IDM_INTERACTION_DTL_AGG

请指教。

4

3 回答 3

2

听起来你想要这个。这将在每个字段上连接两个表:

SELECT *
FROM idm_itrack t
LEFT JOIN IDM_INTERACTION_DTL_AGG i
  on t.dw_dealer_id = i.dw_dealer_id
  and t.dw_product_id = i.dw_program_id
  and t.dw_program_type_id = i.dw_program_type_id

如果您在学习JOIN语法方面需要帮助,这里有一个很好的 joins 可视化解释

LEFT JOIN如果您有不在其中的记录,则IDM_INTERACTION_DTL_AGG匹配的记录将返回一个null值。

如果您想要两者都存在的记录,那么您可以INNER JOIN在表之间使用:

SELECT *
FROM idm_itrack t
INNER JOIN IDM_INTERACTION_DTL_AGG i
  on t.dw_dealer_id = i.dw_dealer_id
  and t.dw_product_id = i.dw_program_id
  and t.dw_program_type_id = i.dw_program_type_id
于 2012-12-21T15:53:51.227 回答
1

只需加入即可,

SELECT    
      a.dw_itrack_id   
   FROM
     idm_itrack a,IDM_INTERACTION_DTL_AGG b
   WHERE
      a.dw_dealer_id=b.dw_dealer_id and 
      a.dw_product_id=b.dw_product_id and
      a.dw_program_type_id=b.dw_program_type_id;
于 2012-12-21T15:54:33.987 回答
0

试试这个:

SELECT    
    it.dw_itrack_id   
 FROM
   idm_itrack it INNER JOIN IDM_INTERACTION_DTL_AGG iida
 ON 
  it.dw_dealer_id = iida.dw_dealer_id AND
  it.dw_product_id =  iida.dw_product_id AND
  it.dw_program_type_id = iida.dw_program_type_id;
于 2012-12-21T15:56:34.483 回答