0

我有 3 个表,分别命名为 tblProducten、tblCategorie 和 tblProductCategorie。

tblProductenen 具有:

  • PK_producten_ID(主键,AI)
  • ProductNaam(产品名称,VARCHAR)

此表填充智能手机或普通手机数据(例如“iPhone4”、“诺基亚 3310”)

tblCategorie 有:

  • PK_Categorie_ID(主键,AI)
  • Naam_Categorie(类别名称,VARCHAR)

此表填充了类别(例如“智能手机”、“电话”、“额外”)

tblProductCategorie 有:

  • PK_Product_Categorie_ID(主键,AI)
  • ProductNaam(类别名称,VARCHAR)
  • tblProductenen_PK_Producten_ID
  • tblCategorie_PK_Categorie_ID

现在我想在 CategorieProduct 表中输入名为“iPhone4”的产品和产品“smartPhone”的类别。

我试过这样的事情:

INSERT INTO tblProductCategorie (
  SELECT PK_producten_ID FROM tblProducten
  WHERE ProductNaam = "iPhone4",
    SELECT PK_Categorie_ID FROM tblCategorie
    WHERE Naam_Categorie = "smartphone"
)

但是没有成功。

4

2 回答 2

1
INSERT INTO tblProductCategorie(ProductNaam, tblProductenen_PK_Producten_ID, tblCategorie_PK_Categorie_ID)
SELECT distinct ###, PK_producten_ID, PK_Categorie_ID
FROM tblProducten, tblCategorie 
WHERE ProductNaam = "iPhone4" AND Naam_Categorie = "smartphone";

你真的想在表中插入什么名字?产品名称、类别名称或两者兼而有之?

于 2013-10-15T19:04:19.457 回答
1

插入值的方式有两个主要问题,您没有指定列列表

insert into tablename (column1, column2, etc)values ( 1, 2)

其次,您不要将所有参数都放在列中。

INSERT INTO tblProductCategorie( PK_Product_Categorie_ID, ProductNaam, tblProductenen_PK_Producten_ID, tblCategorie_PK_Categorie_ID) (SELECT PK_producten_ID FROM tblProducten WHERE ProductNaam = "iPhone4", SELECT PK_Categorie_ID FROM tblCategorie WHERE Naam_Categorie = "smartphone")

应该需要类似的东西:

INSERT INTO tblProductCategorie( PK_Product_Categorie_ID, ProductNaam, tblProductenen_PK_Producten_ID, tblCategorie_PK_Categorie_ID)( "iPhone4", SELECT PK_producten_ID FROM tblProducten WHERE ProductNaam = "iPhone4", SELECT PK_Categorie_ID FROM tblCategorie WHERE Naam_Categorie = "smartphone")    

祝你好运 ;)

于 2013-10-15T19:06:32.387 回答