我有一个用户表(用户名,密码等)和另一个用于产品的表(产品名称,价格,数量,用户名等等)
当用户将其用于销售时,我希望将第一个表中的用户名(以及产品信息的其余部分)插入到产品表中。
我该怎么做?
我正在使用visual web developer 2008 express
答案 0 :(得分:1)
INSERT INTO product_information (username,product_name, ...., Date)
SELECT username, 'Book',....., Date
FROM users;
沿着那条线的东西
答案 1 :(得分: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
编辑:
澄清... value1和value2是相应案例的列。您将要插入的每个参数都有一个。你的新表变成了table1
答案 2 :(得分:0)
你的问题没有意义。听起来你想插入一个表(Products
),其中一个字段也在另一个表(User.username
)中。 Products
的其余数据来自哪里?你不能直接插入用户名吗?
Insert into products (name, price, username) values (?, ?, ?)
使用您希望将数据传递给该SQL语句的任何机制。
但是,如果您确实有第三个表格,比如“Prod_for_sale
”,并且您希望从Users
和Products
向该表中插入一堆数据,你可以做这样的事情(正如Rick J所建议,但这个例子有两个表):
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 = ?
然后,您可以将所需的任何数据从相关表中复制到目标表中。
建议:您应该使用用户ID而不是用户名来识别数据库中的用户数据。这将允许您稍后更改您的用户名政策或允许更新用户名等。通常会尝试制作所有标识号,以便将来为您节省麻烦。