2016-08-13 68 views
0

我有两个表如下:选择表1中的所有行和表的填写栏2

表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 

WHERE月份=“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

看起来像一个左与多个连接连接条件:

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条款中的条件,则会从结果中筛选出一些记录,这不是您所期望的。

相关问题