0

Prop PropID PropDescription

多対多の関係

画像 ImageIDImageDescription

Image_has_Prop Prop_PropID Image_ImageID

私のアプリケーションでは、Image_has_Propにデータを挿入する必要があります。ユーザーはImageIdを入力し、PropDescriptionフィールドを表示するJComboBoxからプロップを選択します。説明を外部キーに関連付ける方法を理解しようとしていますが、それも可能ですか?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';

または、各テーブルから1つの行を取得しているため、クロス結合を実行することもできます。

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 に答える