首页 > 解决方案 > 如何在不重复行的情况下在同一字段的同一表上获取数据

问题描述

我有 3 个名为 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   

标签: sqlsql-server-2012

解决方案


试试这个查询

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;

推荐阅读