-1

私はこれで理にかなっていることを願っていますが、ここに行きます。

私がやりたいことは、2 つのテーブルから (JOIN を介して) 情報を取得し、それらの 2 つのテーブルの情報を 3 番目のテーブルに UPDATE することです。これは、私が必要とすることをほぼ正確に模倣する、私が書いたいくつかのテスト コードです。

私の唯一の問題は、最後の「SELECT * FROM @tempTable」にあることです... @tempTable テーブル内の userName 列と BadgeId 列で UPDATE を機能させる方法がわかりません。私が試したことはすべて、INSERTを行っているかのように、それを独自の行に挿入することになります...

どんな助けでも大歓迎です。MS SQL Server 2008 R2 でコードを作成して実行したので、動作するはずです。

/* Create the 'Users' table */

DECLARE @Users TABLE(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    userName varchar(100),
    UserId int)

INSERT INTO @Users (userName, UserId)
VALUES ('jim', 100), 
       ('kira', 200),
       ('ken', 300),
       ('dan', 400),
       ('len', 500)

/* Create the 'Badges' table */
DECLARE @Badges TABLE(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    badgeId varchar(100),
    userId int)

INSERT INTO @Badges (badgeId, UserId)
VALUES (10, 100), 
       (20, 200),
       (30, 300),
       (40, 400),
       (50, 500)

/* Create the '@tempTable' */   
DECLARE @tempTable TABLE(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    userName varchar(100),
    badgeId int,
    divNumber int,
    secNumber int)  

INSERT INTO @tempTable (badgeId, userName, divNumber, secNumber)
VALUES (null, null, 68, 34),
       (null, null, 68, 34),
       (null, null, 69, 24),
       (null, null, 69, 24),
       (null, null, 70, 14)

/* Select userNames and badgeIds from the 'Users' and 'Badges' tables */    
SELECT u.userName, b.badgeId
FROM @Users as u
    INNER JOIN @Badges as b
    ON b.userId = u.UserId

/* Select all information from the '@tempTable' table */
SELECT * FROM @tempTable

ここに画像の説明を入力

4

1 に答える 1