2012-03-09 55 views
0

道具 PROPID PropDescription插入到交集表引用外鍵

多對多的關係

圖片 圖像標識 ImageDescription

Image_has_Prop Prop_PropID Image_Imag eID

在我的應用程序中,我需要將數據插入Image_has_Prop。用戶鍵入ImageId,然後從顯示PropDescription字段的JComboBox中選擇Prop。我試圖弄清楚如何將描述與外鍵相關聯,甚至有可能嗎?因爲我認爲PropDescription可能不是唯一的。下面是我的嘗試,我認爲如果我誠實地使用mysql數據庫,它是如此。

INSERT INTO Image_has_Prop 
(Image_ImageID, Prop_PropID) 
VALUES 
(Select ImageID FRom Image where ImageID ='1', SELECT PropId FROM Prop Where PropDescription = 'Tablets'); 

回答

1
INSERT INTO Image_has_Prop (Image_ImageID, Prop_PropID) 
SELECT 1, PropID 
    FROM Prop 
WHERE PropDescription = 'Tablets'; 

您已經知道了圖像標識想要所以沒有必要查詢它。如果有必要,你可以做一個子查詢(將「1」改爲「(從Image WHERE ImageID = 1選擇ImageID)」)。這將是這個樣子:

INSERT INTO Image_has_Prop (Image_ImageID, Prop_PropID) 
SELECT (SELECT ImageID FROM Image WHERE ImageID = 1), PropID 
    FROM Prop 
WHERE PropDescription = 'Tablets'; 

或者你可以做一個交叉連接,因爲你從每個表中獲取一條記錄:

INSERT INTO Image_has_Prop (Image_ImageID, Prop_PropID) 
SELECT i.ImageID, p.PropID 
    FROM Image i, Prop p 
WHERE i.ImageID = 1 
    AND p.PropDescription = 'Tablets'; 
+0

如我所料,做工的完美謝謝! – Peddler 2012-03-09 15:49:59