使用子查询从其他2个表中插入数据

时间:2013-10-15 18:55:46

标签: sql database subquery

我有3个表,名为tblProducten,tblCategorie和tblProductCategorie。

tblProductenen有:

  • PK_producten_ID(主键,A.I。)
  • ProductNaam(产品名称,VARCHAR)

此表格中包含智能手机或普通手机数据(例如“iPhone4”,“诺基亚3310”)

tblCategorie有:

  • PK_Categorie_ID(主键,A.I。)
  • Naam_Categorie(分类名称,VARCHAR)

此表格中填写了类别(例如“智能手机”,“手机”,“额外”)

tblProductCategorie有:

  • PK_Product_Categorie_ID(主键,A.I。)
  • 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"
)

但是不成功。

2 个答案:

答案 0 :(得分: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";

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

答案 1 :(得分:1)

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

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

第二,你不要把所有的args放在你的列中。

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")    
祝你好运;)