0

Prop PropID PropDescription

多对多关系

图像 ImageID ImageDescription

Image_has_Prop Prop_PropID Image_ImageID

在我的应用程序中,我需要将数据插入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');
4

1 回答 1

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

您已经知道所需的 ImageID,因此无需查询。如有必要,您可以执行子查询(将“1”更改为“(SELECT ImageID FROM Image WHERE ImageID = 1)”)。看起来像这样:

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';
于 2012-03-09T11:50:02.920 回答