如何在同一个字段上的同一个表上获取数据,而不重复行

时间:2018-05-23 06:53:19

标签: sql sql-server-2012

我有3个名为T1,T2,T3的表。

T1与字段Id上的T3有关,T2与字段Id上的T3有关。我想要所有匹配的3个。

示例:

T1

Id     otId 
-----------
1       5
2       6
3       7

T2

ID       pmId
-------------
1         1
2         3
3         4

T3

ID   ITEM       FORMFLAG
-------------------------
1     C          PM
3     DC         PM
4     OT         PM
5     DI         OT
6     PU         OT
7     D          OT

我想要

ID       OT     PM
------------------
1        DI     OT
2        PU     C
3        D      DC   

2 个答案:

答案 0 :(得分:1)

尝试此查询

SELECT T1.id AS `ID`, T1.otId AS `OT`, T2.pm AS `PM`
FROM T1, T2, T3
WHERE T1.id = T2.id
  AND T1.id = T3.id;

答案 1 :(得分:1)

您可以使用联接。试试这个。

SELECT 
      TAB3.ID
     ,TAB3.ITEM AS OT
     ,TAB3.FORMFLAG AS PM
FROM
     T1 TAB1
INNER JOIN 
     T3 TAB3
ON
     TAB1.ID = TAB3.ID
INNER JOIN
     T2 TAB2
ON
     TAB3.ID = TAB2.ID