【问题标题】:How to link a row of MySQL database table to another row in another table如何将MySQL数据库表的一行链接到另一个表中的另一行
【发布时间】:2014-01-20 01:15:39
【问题描述】:

我知道这没什么意义...而且我是使用 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 行...我不知道如何存档...

【问题讨论】:

  • 阅读、学习并在内心消化这段关于SQL JOINs的描述
  • 对不起,这没有帮助..!!
  • 我不认为[s]他想加入,我认为[s]他只是想获得有关海报的信息,这可以通过外键轻松完成。
  • 嗨,戴夫,在您当前的问题中,您尚未接受任何答案。如果您选择最适合您的情况或最适合您的答案,请单击左侧的勾号。它给了回答者的声誉,如果我没记错的话,你也是。
  • 是的,阿什利戴维斯。我想获取当前海报的信息。基本上从表中获取登录的用户信息,并在用户发布内容时将该名称传递给posts 表中的posted_by 行。我已经尝试了很多论坛,但没有答案。这是使用 php 完成的,还是 MySQL 仅通过分配外键为您完成?如果可能的话,链接一个视频或解释一下:)

标签: php mysql sql database


【解决方案1】:

你没有提供足够的信息来给出完整的答案,但我会尽我所能。

表格

+-----------------+ +-----------------+
| 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 想要发布“嗨”,您可以这样做:

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”字段是“发布”任意数字,但您知道它链接到或引用用户。它通过引用作为 users_log_info 的主键的“ID”来做到这一点,因此当您想从 users_log_info 获取信息时,您需要做的就是选择具有对应于“posted_by”的 ID 的条目。不过,我确实建议将其命名为 posterID,以便于识别。

【讨论】:

  • 这正是我想要的...thanx :D
  • 您可以正式正式地设置外键,我建议您以后研究一下。只需在 Google 中搜索“外键”即可。如果您只是想制作一些基本的东西来帮助您学习,那么您应该可以使用这样的系统。 (请记住在将来的某个时间查看它)!祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
相关资源
最近更新 更多