我無法從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