1

以下の質問は、私へのインタビューで尋ねられました。この場合、左外部結合を使用できるかどうかはわかりません

CREATE TABLE TableA(Id INT, Name VARCHAR(255));
CREATE TABLE TableB(Id INT);

INSERT INTO TableA(Id, Name)
VALUES (1, 'Person A'),
       (2, 'Person B'),
       (3, 'Person C'),
       (4, 'Person D'),
       (5, 'Person E'),
       (6, 'Person F');

INSERT INTO TableB(Id)
VALUES (1),
       (2),
       (3);

出力は

Name
Person D
Person E
Person F

2 つのテーブル。TableA と Table B. Table B にはない Table A の Names が必要です。Left outer Join でこれを行うことは可能ですか。紙とペンで数分間格闘し、紙に質問を書きましたが、後で間違っていることがわかりました。

注: サブクエリは使用しないでください。私も同じことをしましたが、インタビュアーは左外部結合でそれを行うように求めました。

可能かどうか教えてください。

SQL フィドル

4

2 に答える 2

3

簡単に聞こえます

SELECT * FROM TableA a
LEFT JOIN TableB b on b.Id=a.Id
WHERE b.ID is null

これにより、テーブル内の一致が得られるはずです。秘訣は、B 側の null 行に関心があることに気付くことです。

于 2013-02-17T05:14:26.193 に答える
-2

サブクエリを使用できますか?

SELECT Name FROM TableA 
WHERE TableA.ID not in (SELECT TableB.ID From TableB)
于 2013-02-17T05:13:52.013 に答える