我有两张表如下:
表1:
ID | FName | LName
1 | A1 | A2
2 | B1 | B2
3 | C1 | C2
表2:
ID | Price | Month | T1ID
1 | 5 | 1 | 1
2 | 5 | 1 | 2
3 | 5 | 2 | 3
结果:
月份='1'
ID | FName | LName | Price | Month | T1ID
1 | A1 | A2 | 5 | 1 | 1
2 | B1 | B2 | 5 | 1 | 2
NULL| C1 | C2 | NULL | NULL | 3
月份='2'
ID | FName | LName | Price | Month | T1ID
NULL| A1 | A2 | NULL | NULL | 1
NULL| B1 | B2 | NULL | NULL | 2
3 | C1 | C2 | 5 | 2 | 3
答案 0 :(得分:0)
看起来像是一个有多个连接条件的左连接:
SELECT t2.ID, t1.FName, t1.LName, t2.Price, t2.Month, t1.ID
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.ID = t2.T1ID AND t2.Month = '1' -- or '2'
诀窍是通过向ON
子句添加附加条件来进行过滤,这有助于在连接期间过滤记录。如果您在WHERE
子句中使用了条件,则会从结果中过滤掉一些记录,这不是您所期望的。