2011-12-16 28 views
1

私は以下のSQLを持っています。 SQLはOrderテーブルにはないUsers.Idを返します。私はInsert SQLを作成し、これらのユーザーのためにデフォルトの順序を挿入する必要があります。どうやってするか?複数のレコードを挿入

SELECT Id 
FROM [User] WHERE Id NOT IN (SELECT UserId FROM dbo.[Order]) 

注文表の列は

 Id , -- Random Number 
     UserId , -- Id from Select above 
     FirstName , 
     LastName , 
     Credits 
+0

注文列は何ですか? –

+0

投稿を更新しました – Tomas

+0

'Order'テーブルが完全に正規化されていないようです。ヒント:「FirstName」はユーザーの非キー属性であり、注文の属性ではないと考えられます。 – onedaywhen

答えて

2

dbo.[User]と仮定すると、あなたはこのようにそれを行うことができますFirstNameLastNameCreditsの列があります:あなたは別の例えばhereを見ることができます

Insert Into dbo.[Order] (UserId, FirstName, LastName, Credits) 
SELECT u.Id, u.FirstName, u.LastName, u.Credits 
FROM [User] u WHERE u.Id NOT IN (SELECT o.UserId FROM dbo.[Order] o) 

。あなたはそれを理解するかもしれません:)


Unique Id使用Identity Propertyを生成します。

+0

他の列を挿入する方法がわからないので、あなたの投稿を更新できますか?また、Order.Id列の一意のint IDを生成する方法は? – Tomas

+0

@トーマス私は私の答えを変更しました:) –

+0

'PRIMARY KEY'制約は、" Unique int ID "や" Random Number "を生成しません! – onedaywhen

関連する問題