2013-10-15 96 views
0

我有3個表,名爲tblProducten,tblCategorie和tblProductCategorie。從其他2個子查詢中的表中插入數據

tblProductenen有:

  • PK_producten_ID(主鍵,AI)
  • ProductNaam(產品名,VARCHAR)

這臺充滿了智能手機或普通電話數據(例如「 iPhone4「,」諾基亞3310「)

tblCategorie has:

  • PK_Categorie_ID(主鍵,AI)
  • Naam_Categorie(Categorie名,VARCHAR)

這臺充滿類別的(例如 「智能手機」, 「手機」, 「額外」)

tblProductCategorie有:

  • PK_Product_Categorie_ID(主鍵,AI)
  • ProductNaam(Categorie名,VARCHAR)
  • tblProductenen_PK_Producten_ID
  • tblCategorie_PK_Categorie_ID

現在我想進入名爲 「iPhone4的」 產品與產品的 「智能手機」 到CategorieProduct TABEL的範疇。

我想是這樣的:

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

不過是不成功的。

回答

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

你真的想插入表中什麼名字?產品名稱,類別名稱還是兩者?

+0

我有例如配發的手機和類別的手機的配發,而且由於這是一個多對多關係,我需要創建另一個表來將主鍵和代碼結合起來,進行小的調整,它就可以工作了!謝謝分配! –

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

好運;)

+0

看起來也不錯,但是,其他人回答更快,也做了竅門:/,謝謝壽! –

相關問題