我无法从2个不同的表格查询:A和B.每个表格代表一个类别的分数结果。表A和B代表不同的测试。有些学生已经参加了两次考试,有些学生只参加了一次。SQL - 按名称加入2个不同表格
这里是什么我的工作很短的版本:
CREATE TABLE A
(
fn varchar(50),
ln varchar(50),
score1 int
);
CREATE TABLE B
(
fn varchar(50),
ln varchar(50),
score2 int
);
INSERT INTO A (fn, ln, score)
VALUES ('abe','farm',90);
INSERT INTO A (fn, ln, score)
VALUES ('carly','lina',70);
INSERT INTO A (fn, ln, score)
VALUES ('bobby','echo',40);
INSERT INTO A (fn, ln, score)
VALUES ('joe','robin',11);
INSERT INTO B (fn, ln, score)
VALUES ('abe','farm',95);
INSERT INTO B (fn, ln, score)
VALUES ('carly','lina',75);
INSERT INTO B (fn, ln, score)
VALUES ('geb','lina',100);
INSERT INTO B (fn, ln, score)
VALUES ('bobby','echo',40);
我想代表所有的学生(不重复)所得到的数据表中的NULL了不存在的比分和比赛为每个学生相应的名字和姓氏:
/===========================================\
| fn | ln | score1 | score2 |
|===========================================|
| abe | farm | 90 | 95 |
| bobby | echo | 40 | 40 |
| carly | lina | 70 | 75 |
| geb | lina | NULL | 100 |
| joe | robin | 11 | NULL |
\===========================================/
我在Microsoft SQL Server中工作。
能否请你展示你迄今为止尝试过并注明您所遇到的问题。 –
由于简单的连接会给结果礼仪?你在尝试不同的东西吗?您正在寻找的输出是什么? –
'select coalesce(a.fn,b.fn)fn,coalesce(a.ln,b.ln)ln,a.score score1,b.score score2 from a full join b on b.fn = a.fn and b.ln = a.ln' – ZLK