2012-03-09 52 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