加入3个表相同的id不同和相同的描述

时间:2013-05-24 05:30:03

标签: mysql join

我试图将三张桌子连在一起。表A,B和C. 所有三个表的ID都相同。

每个表都有一个字段描述。具有描述的ID 1表A中的名称应该是ID 1,其中描述名称在表B中。对于表C,它应该是具有描述名称的ID1。

但有些ID显示ID1描述Nameblank。我想显示SAME - 如果它与B或C具有相同的值。如果所有三个都相同,我不希望它显示。 例如:

表A

ID      Description

1       Name

2       Noname

3       Namea

表B

ID      Description

1       Nameblank

2       Noname

3       Nameb

表C

ID      Description

1       Name

2       Noname

3       Namec

结果

ID  A Description   B Description   C Description

1       |   Name  |  Namea        |   Nameblank

3       |       Nameb|  SAME – A      |    Namec

我之前没有参加过三张桌子,我很困惑。感谢您的任何帮助。

2 个答案:

答案 0 :(得分:1)

SELECT 
    A.ID as 'ID',
    A.Description as 'A Description',
    B.Description as 'B Description',
    C.Description as 'C Description'
From
    TableA A
        INNER JOIN
    TableB B ON (A.ID = B.ID)
        INNER JOIN
    TableC C ON (A.ID = C.ID)

答案 1 :(得分:0)

select TABLEA.ID, 
       TABLEA.Description as ADescription,

       CASE WHEN TABLEA.Description=TABLEB.Description THEN 'SAME - A'
                  ELSE TABLEB.Description
       END as BDescription,

       CASE WHEN TABLEA.Description=TABLEC.Description THEN 'SAME - A'
                  ELSE TABLEC.Description
       END as CDescription

from TABLEA
JOIN TABLEB on TABLEA.id=TABLEB.id
JOIN TABLEC on TABLEC.id=TABLEC.id

Where TABLEA.Description<>TABLEB.Description
      or 
      TABLEB.Description<>TABLEC.Description
ORDER BY TABLEA.id