0

私はPHPとMySQLにかなり慣れていません。

次のように2つのテーブルがあります。

1.`users`: `id`//primary key
         : `name`//user's name

2.`events`: `u_id`//index key and foreign field to users' id
          : `u_name`

ユーザーはidフォームに を入力します。それidがテーブルで検索されusers、関連する詳細が取得されてテーブルに挿入されeventsます。

私は外部フィールドを作成しましたが、今までid、変数として取り、テーブルから詳細を変数として返し、usersそれをテーブルに挿入する関数を作成しましたevents。しかし、それは「たくさんの」変数を使用することを意味し、外部フィールドの使用は何だと思いました。私はまだ PHP を学んでおり、あるテーブルから別のテーブルに FOREIGN フィールドを使用して検索および挿入する方法がわかりません。外国のフィールドを作成する方法を知っているだけです。助けてください。

4

2 に答える 2

1

これはあなたが話していることですか?
これが外部キーの作成方法です。

CREATE TABLE parent (id INT NOT NULL,
                     PRIMARY KEY (id)
);
CREATE TABLE child (id INT, parent_id INT,
                    INDEX par_ind (parent_id),
                    FOREIGN KEY (parent_id) REFERENCES parent(id)
                      ON DELETE CASCADE
);

私があなたの質問を理解していなかったら、お詫びします

更新しました

INSERT table1 (col1, col2, col3)
SELECT col1, col2, col3
FROM table2
WHERE col1 = 'xyz'  

お役に立てれば

于 2013-02-07T10:35:47.257 に答える
0

イベント テーブルにユーザー名を格納する必要はありません。外部キーのポイントは、イベント テーブルにユーザー ID を格納するだけでよいということです。これはユーザーへの参照であるためです。

イベントのユーザー名、たとえばイベント番号 6 を取得するには、次のようにします。

select name from users join events on users.id = events.u_id where events.id = 6

したがって、イベント テーブルにユーザー データを挿入しようとしてはなりません。そこに ID を入力するだけで、外部キーを使用してユーザー データを取得できるようになります。

于 2013-02-07T16:45:28.907 に答える