代码之家  ›  专栏  ›  技术社区  ›  kazzi

联接表并根据列中的值保持相同的行数

sql
  •  -1
  • kazzi  · 技术社区  · 6 年前

    我有个问题:

    SELECT t.USER_ID, c.CODE 
    FROM TRANSACTIONS t 
    INNER JOIN USER u ON t.USER_ID = u.USER_ID 
    INNER JOIN COMPANY c ON c.CODE = u.CODE
    

    返回此结果集:

    USER ID     CODE
    -----------------
    01          100
    02          100
    03          100
    03          120
    

    那我有一张桌子 INTERACTIONS

    CODE     INTERACTION     WORKED_YN
    -----------------------------------
    100      Sample 01       Y
    100      Sample 02       Y
    120      Sample 03       N
    120      Sample 04       N
    etc.
    

    CODE

    互动

    USER ID     CODE    WORKED_YN
    -----------------------------
    01          100     Y
    02          100     Y
    03          100     Y
    03          120     N
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   JNevill    6 年前

    既然你不需要 INTERACTIONS.INTERACTION 在结果集中的列中,只需子查询 INTERACTIONS 表以获取忽略该列的不同记录:

    SELECT t.USER_ID, c.CODE 
    FROM (SELECT DISTINCT CODE, WORKED_YN, USER_ID FROM TRANSACTIONS) t 
    INNER JOIN USER u ON t.USER_ID = u.USER_ID 
    INNER JOIN COMPANY c ON c.CODE = u.CODE