我试图将三张桌子连在一起。表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
我之前没有参加过三张桌子,我很困惑。感谢您的任何帮助。
答案 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