2つの異なるテーブル:AとBからのクエリに問題があります。各テーブルはクラスのスコア結果を表します。表AおよびBは、異なる試験を表す。一部の学生は両方のテストを受けており、一部の学生は1つしか受けていません。ここで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で働いています。
を試してみてください。 –
シンプルなジョインが結果を与えるでしょうか?違うことをしようとしていますか?探している出力は何ですか? –
'b.fn = a.fn上の完全結合bからスコア2を選択し、(b.fn、b.fn)fn、coalesce(a.ln、b.ln)ln、a.scoreスコア1を選択します。 b.ln = a.ln' – ZLK