0

我会尽可能简单地解释我的问题。
我写了一个选择查询Query1Table1它给了我以下结果

SELECT * FROM Table1 WHERE TypeID=1

ID Column1 Column2 类型ID
1 AA 1
2 BB 1
3 CC 1

我有另一个表Table2,其中包含以下格式的数据

ID 列1 列 2
1 0 0
1 1 1
2 2 2
2 3 3
2 4 4
3 5 5
3 6 6

我写了另一个选择查询Query2Table1它给了我以下结果

SELECT * FROM Table1 WHERE TypeID=2

ID Column1 Column2 TypeID
4 AA 2
5 BB 2
6 CC 2

Table1并且Table2没有共同的列,Column1并且Column2两者TypeID'sTable1的数据是相同的,并且当前数据中的Table2数据具有ID列的值,Table1仅用于 id 的 1,2,3,我想编写一个选择查询来选择相同的数据,Table2但具有值我在下面给出的第2IDTable1TypeID

ID 列1 列 2
4 0 0
4 1 1
5 2 2
5 3 3
5 4 4
6 5 5
6 6 6

如何通过在 sql server 中编写选择查询来实现这一点?

4

2 回答 2

0
select T1.column1, isnull(T2.column2,0) as column2,
 isnull(T2.column3,0) as column3
from table1 T1
left outer join on Table2 T2 on T1.column9=T2.column9
where ....
于 2013-05-21T07:07:59.990 回答
0

如果我正确理解了这个问题,那么查询应该是这样的:

SELECT
  T_ID.T2_ID,
  Column1,
  Column2
FROM
  Table2
  JOIN
  (
    SELECT
      T1.ID AS T1_ID,
      T2.ID AS T2_ID
    FROM 
      Table1 AS T1
      JOIN Table1 AS T2 ON T1.Column1 = T2.Column1 AND T1.Column2 = T2.Column2
    WHERE
      T1.TypeID = 1
      AND T2.TypeID = 2      
  ) AS T_ID ON Table2.ID = T_ID.T1_ID
于 2013-05-21T11:41:40.857 回答