0

我对 PHP 和 MySQL 还很陌生。

我有两个表如下:

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 存储在事件表中,因为这是对用户的 REFERENCE。

要获取事件的用户名,比如事件编号 6,您可以这样做

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

因此,您不应该尝试将用户数据插入事件表中。只需将 ID 放在那里,您就可以使用外键检索用户数据。

于 2013-02-07T16:45:28.907 回答