用于从一个表配对术语的SQL查询

时间:2010-10-27 11:36:43

标签: sql

给定第一个表,我需要使用相同的表连接此表并获取输出表。这里我们需要基于相同的seqid配对术语,这些术语应该仅从第一个表到第二个表配对。

Example:S1  T1  T2
        S1  T1  T3
        S1  T2  T3

这是正确的输出形式,但是一旦T1,T2已经在输出表中配对,我们就不应该得到S1 T2 T1和S1 T3 T2。

GIVEN TABLE:

   SEQID  TID                    

   S1      T1                 
   S1      T2                      
   S1      T3                      
   S2      T2                      
   S2      T3                       
   S2      T5                     
   S2      T6

输出:

 SEQID             TID       TID                
   S1              T1         T2
   S1              T1         T3               
   S1              T2         T3                
   S2              T2         T3               
   S2              T2         T5
   S2              T2         T6
   S2              T3         T5
   S2              T3         T6
   S2              T5         T6

提前致谢..

2 个答案:

答案 0 :(得分:3)

SELECT  gt1.seqid, gt1.tid, gt2.tid
FROM    giventable gt1
JOIN    giventable gt2
ON      gt2.seqid = gt1.seqid
        AND gt2.tid > gt1.tid

答案 1 :(得分:0)

尝试以下方法:


SELECT      a.seqid, a.tid, b.tid
FROM        [TABLE] a
INNER JOIN  [TABLE] b on a.seqid = b.seqid
WHERE       a.tid < b.tid
ORDER BY    a.seqid, a.tid