2011-04-29 19 views
0

シナリオの(簡略化された)例を提供すると、私の質問がよりよく理解できます。イベントとコースの2つのテーブルがあります。イベントテーブルには、EventID、CourseID、およびEventDateが含まれています。 Courseテーブルには、CourseIDとCourseNameが含まれています。MYSQL:外部キーに基づくレコードの追加

私は新しいイベントを追加したいと思います。

INSERT INTO event 
(EventID,CourseID,EventDate) VALUES (NULL,'2','2011-03-01'); 

代わりにCourseIDの代わりにCourseNameを指定してEventを更新したいと思います。これをどうやってやりますか?

編集:明らかにMYSQLクエリだけでこれを行う方法はありません。 PHPでこれを行い、ユーザーがイベントレコードを更新できるようにしようとしています。明らかに、コースの名前に基づいて、好ましくはドロップダウンボックスを用いて新しいイベントを追加することは、ユーザにとって便利なことである。

おかげ

+0

通常、これはsqlの外部で実行されます。名前を表示するフォームで選択オプションを使用するが、IDを返すのはなぜですか? – piotrm

+0

私は実際にPHPでそれをやろうとしていますが、私はmysqlにそれについてのクエリがあると考えました。私はそれを反映するために私のポストを更新します – Antonym

答えて

0
INSERT INTO Event (EventID, CourseID, EventDate) 
SELECT NULL, C.CourseID, '2011-03-01' 
FROM Course C 
WHERE C.CourseName = 'Course Name Goes Here'; 
0

あなたが試みることができるこの1つの一つのこと。あなたはあなたが探しているレコードを一意に識別しているかどうかを確認するために、クエリに日付を含めることもできます。

もう1つのことは、ユーザーが更新したいイベントへの参照を呼び出すときに、イベントIDを保存することです。次に、あなたが意図しているレコードのみを更新していることを確認します。