Sql 如何在不重复行的情况下,在同一字段的同一个表上获取具有真实性的数据

Sql 如何在不重复行的情况下,在同一字段的同一个表上获取具有真实性的数据,sql,sql-server-2012,Sql,Sql Server 2012,我有三个表,分别是T1、T2、T3 T1与T3在字段Id上有关系,同样T2与T3在字段Id上有关系。我想要所有3个匹配的 例如: T1 Id otId ----------- 1 5 2 6 3 7 T2 ID pmId ------------- 1 1 2 3 3 4 T3 ID ITEM FORMFLAG ------------------------- 1

我有三个表,分别是T1、T2、T3

T1与T3在字段
Id
上有关系,同样T2与T3在字段
Id
上有关系。我想要所有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   
请尝试此查询

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;

可以使用连接。试试这个

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

请你用表格形式填写一下,然后分享一下,t1和t2之间没有关系。t1与t3相关,t2与t3相关如果
t1
t3
相关,
t3
t2
相关,这不意味着
t1
t2
相关吗?(及物性)