1

我正在尝试将三个表连接在一起。表 A、B 和 C。所有三个表的 ID 相同。

每个表都有一个字段说明。表 A 中带有描述名称的 ID 1 应该是表 B 中带有描述名称的 ID 1。同样,对于表 C,它应该是带有描述名称的 ID1。

但有些ID显示ID1描述Nameblank。我想显示 SAME – A 如果它与 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

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

4

2 回答 2

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)
于 2013-05-24T05:36:47.937 回答
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
于 2013-05-24T05:38:07.987 回答