繁体   English   中英

如何将MySQL数据库表的一行链接到另一个表的另一行

[英]How to link a row of MySQL database table to another row in another table

我知道这没有什么意义...而且我是使用MySQL的新手...在这里我要做的是将一个表行链接到另一个表行...例如,有两个表。一个表用于用户注册,同一表也用于登录...,下一个表用于用户帖子..例如状态更新和所有...

这就是我想要的...

user_log_info:-
id ( primary )
firstname
lastname
username
email
password

posts:-
id ( primary )
userposts
posted_by
date_post

所以你可以看到,我想user_log_info表用户名被自动复制到posts posted_by行......我不知道我怎么可以归档此...

您没有提供足够的信息来提供完整的答案,但是我会尽力提供您所提供的信息。

+-----------------+ +-----------------+
| users_log_info  | | posts           |
+-----------------+ +-----------------+
| int ID (primary)| | int ID (primary)|
+-----------------+ | int posted_by   |
                    +-----------------+

(我省略了与您似乎想要执行的操作无关的字段,我只是在简化它)

posted_by是一个非官方的foreign key ,或引用另一个表的主键。

要插入,您可以按照以下步骤操作:

INSERT INTO posts(...., posted_by) VALUES (...., user.ID)

....引用您的所有其他信息插入

然后,查找有关发布内容的人的信息:

SELECT * FROM users_log_info WHERE ID = Post.posted_by

或者,如果您想按用户查找所有帖子:

SELECT * FROM posts WHERE posted_by = user.ID

因此,如果用户ID为3的Bob想要发布“ Hi”,则您可以执行以下操作:

INSERT INTO posts(content, posted_by) VALUES('Hi', bob.ID)

然后在输出帖子时,您可以执行以下操作:

post = (however you choose the post to put on the page)
userPosted = SELECT * FROM users_log_info WHERE ID = post.posted_by

print post.content + " posted by: " userPosted.Name

本质上,字段“ posted_by”是用来“发布”任意数字,但是您知道它链接到或引用了用户。 它是通过引用“ ID”(这是users_log_info的主键)来实现的,因此,当您要从users_log_info获取信息时,您所需要做的就是选择ID与“ posted_by”相对应的条目。 我确实建议将其命名为posterID ,以便于识别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM