我有2个表(AllProducts)
和(Categories)
,某些产品可以有多个类别,因此我使用了第3个表(Product_Category)
来处理这种多对多关系。
在我第一次设计数据库时,我为每个类别创建了一个表,并用产品名称填充它们(产品名称是唯一的)。
现在,我正在尝试将我之前创建的类别表中的数据插入到新表(Product_Category)
中,因此我写了一个这样的查询:
INSERT INTO Product_Category(prodID,categoryID)
SELECT
(SELECT ID FROM AllProducts
WHERE ProductName IN(SELECT Products FROM Poltries))
,(SELECT 1)
但是我收到了这个错误:
子查询返回的值超过1。这是不允许的 子查询跟随=,!=,<,< =,>,> =或当子查询用作 表达。
我理解为什么我会收到错误,但我不知道如何写错误。
我想要的是:
从(AllProducts)
表中选择其名称位于Category_A table
的每个产品的ID(在此示例中为' Polteries'),然后将此值插入column [prodID]
然后在列(category ID)
中插入常量值[categoryID]
。
任何人都可以帮我吗?
答案 0 :(得分:2)
试试这个
INSERT INTO Product_Category(prodID,categoryID)
SELECT ID, 1
FROM AllProducts
WHERE ProductName IN (SELECT Products FROM Poltries)