0

次のような2つのテーブル構造(によって生成されますsequel pro):

質問表:

CREATE TABLE `question` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(128) NOT NULL DEFAULT '',
  `content` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

回答表:

CREATE TABLE `answer` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `question_id` int(11) unsigned NOT NULL,
  `content` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `question_id` (`question_id`),
  CONSTRAINT `answer_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `question` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

答えを挿入したいとき:

私は次のようなことをすることができますか?

INSERT INTO answer(content)JOIN question(titlecontent)VALUE('Ironman'、 "お気に入りのキャラクター"、 "Avangerでお気に入りのキャラクターは誰ですか?");

または同様のことを行うためのより良い方法はありますか?

4

1 に答える 1

0

これを行う最良の方法は、何らかの方法で質問IDを永続化し、それを使用して回答を挿入することです。他に方法がない場合は、次のようにすることができます。

INSERT INTO answer(content, question_id) 
VALUES('Ironman', (select id 
                     from question 
                    where title ='favourite characters' 
                      and content = 'Who is your favourite characters in Avanger?'));
于 2012-10-07T00:36:18.000 に答える