2009-05-06 68 views
0

我有用戶(用戶名,密碼..等),一張桌子和一個又一個產品(產品名稱,價格,數量,用戶名 ..等)如何從多個表格中插入一個?

我想從第一個表的用戶名是(用產品信息的其餘部分)插入產品表中,當用戶出售它時。

我該怎麼做?

我使用Visual Web Developer 2008速成

+0

我試過兩種方式與我有同樣的問題 「必須聲明標量變量@ProductName」這是已經宣佈 加上我沒有得到這個消息時,我只能插入到Products表信息未經任何選擇用戶表 – KmOj86 2009-05-06 11:20:43

+0

你是想直接運行一個sql語句,還是使用一些asp.net控件?我假設後者,因爲你是mentinoing vs webdev。無論哪種方式,向我們展示代碼,以便我們可以看到失敗的情況。 – ahains 2009-05-06 13:27:24

回答

1
INSERT INTO product_information (username,product_name, ...., Date) 
SELECT username, 'Book',....., Date 
FROM users; 

沿着這條線

+0

這不完全選擇多個故事? '圖書'不應該在用戶表中...但也開放的問題是不是100%明確... – PatTech 2009-05-06 09:46:45

0

東西,如果你有LINQ的(.NET 3.5/C#3.0):

var users = from u in userTable 
      from p in productTable 
      where p.username = u.username 
      select new productDetails() 
      { 
       username = u.username, 
       price = p.price 
      } 

然後newtable的.insertAllOnSubmit(用戶);

如果在直SQL

insert into newtable 
select table1.value1, table2.value1 
from table1, table2 
where table1.username = table2.username 

編輯:

澄清...值1和值2是從相應的案件列。每個要插入的參數都有一個。而你的新表成爲表1

0

你的問題並不完全合理。這聽起來像是你想插入一張表(Products),其中一個字段也在另一個表中(User.username)。 Products的其餘數據來自哪裏?你不能直接插入用戶名嗎?

Insert into products (name, price, username) values (?, ?, ?) 

使用您希望將數據傳遞給該SQL語句的任何機制。

但是,如果你確實有一個第三個表,說,「Prod_for_sale」,你要插入一組數據到該表中,來自UsersProducts,你可以做這樣的事情(由Rick的建議Ĵ,但這個例子有兩個表):

insert into products for sale (username, user_country, product_name, product_price) 
select u.username, u.country, p.name, p.price 
from products p, users u 
where p.id = ? 
    and u.username = ? 

然後你就可以複製你想要的任何數據,從表中的問題到目標表中。

儘管有一個建議:您應該使用用戶標識而不是用戶名來標識數據庫中用戶的數據。這將允許您稍後更改您的用戶名政策或允許更新用戶名等。通常會嘗試使您的所有標識符編號,並且您將在未來節省自己的麻煩。