繁体   English   中英

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

[英]Insert data in table from 2 other tables with subquery

我有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"
)

但是不成功。

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";

你真的想把什么名字插入表格? 产品名称,类别名称或两者?

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

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")    

祝好运 ;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM