我有一个表1:
IdT1、IdT1 组
11、30
12、30
13、30
表2:
IdT2,IdT1,详细信息
2、11、A
3、11、B
4、12、A
5、12、B
我希望我的查询是:
IdT2,IdT1,详细信息
2、11、A
3、11、B
2、12、A
3、12、B
空, 13, 一个
空, 13, B
所以,我使用交叉连接:
SELECT table2.IdT2,
table1.IdT1, table2.Detail
FROM table2 CROSS JOIN table1
WHERE table2.IdT1 = 11 AND table1.IdT1Group = 30
但是在我尝试了我的代码之后,它是:
IdT2 IdT1 Detail
2 , 11 , A
3 , 11 , B
2 , 12 , A
3 , 12 , B
2 , 13 , A
3 , 13 , B
这应该是:
IdT2, IdT1, Detail
2 , 11 , A
3 , 11 , B
2 , 12 , A
3 , 12 , B
NULL , 13 , A
NULL , 13 , B
如果我使用这个查询:
SELECT T2.IdT2, tblJoin.IdT1, tblJoin.Detail
FROM Table2 AS T2 RIGHT JOIN
(SELECT Table2.IdT2,
Table1.IdT1, Table2.Detail
FROM Table2 CROSS JOIN Table1 WHERE Table2.IdT1 = 11 AND Table1.IdT1Group = 30
) AS tblJoin ON T2.IdT1 = tblJoin.IdT1 And T2.IdT2 = tblJoin.IdT2 ORDER BY IdT2
结果将是:
IdT2 , IdT1 , 细节
空, 12, 一个
空, 12, B
空, 13, 一个
空, 13, B
2、11、A
3、11、B
如果表 2 中的数据是:
IdT2,IdT1,详细信息
2、11、A
3、11、B
4、11、C
5、12、A
6、12、B
,我期望的选择数据是:
IdT2 ; IdT1 ; 细节
2、11、A
3、11、B
4、11、C
2、12、A
3、12、B
空, 12, C
空, 13, 一个
空, 13, B
空, 13, C