我需要短sql才能在T1上加入T2,只有单个数学
T1 T2 Desired
F1 F2 F1 F2 F1 F2
1 A A RR 1
2 B A 2 UU
3 C A TT 3
4 D B UU 4 YY
5 E C VV 5 ZZ
C XX
D YY
E ZZ
答案 0 :(得分:1)
使用group by消除带有重复项的记录并执行left join以获取T1中的所有值
select T1.F1, ISNULL(T2.F2,'') from T1
LEFT JOIN
(
select F1 from T2
group by F1
having count(*) =1
) T
on T1.F1 = T.F1
LEFT JOIN T2
on T2.F1 = T.F1
答案 1 :(得分:1)
您可以使用简单的GROUP BY/COUNT
来计算每次点击的行数和CASE
表达式,以便仅在行数为< = 1时输出值;
SELECT T1.F1, CASE WHEN COUNT(*)>1 THEN NULL ELSE MAX(T2.F2) END F2
FROM T1
LEFT JOIN T2 ON T1.F2 = T2.F1
GROUP BY T1.F1