gpt4 book ai didi

MySQL 为用户连接并提取正确的数据

转载 作者:行者123 更新时间:2023-11-29 10:32:32 24 4
gpt4 key购买 nike

我目前正在 W3Schools 上阅读有关内部联接和左联接的内容,并且想知道如何为用户提取正确的数据。从我迄今为止读到的内容来看 sql_join_leftsql_join_inner ,这些连接从表中提取所有数据。内连接从两个表中提取所有匹配的数据,而左连接仅从左表中提取所有匹配的数据。如果我有一个用户在我的应用程序上注册,并且该用户加入一个线程并留下评论,那么检索该用户的正确评论历史记录的唯一方法是在注册后发回用户主键作为对用户 ID 的引用,然后用 for 循环遍历我返回的所有数据,直到用户 ID 与我为评论表设置的 ID 匹配。

我的用户表包含主键、名字、姓氏、密码、电子邮件等列。

我的评论表包含主键、评论和用户 ID 列(这是用户注册后分配的主键,我将使用此列来与 for 中的用户表中的主键匹配)循环。此外,由于该列是对 Users 表中用户主键的引用,因此可以有多个相同的 ID 来引用同一用户吗?)

这是否是为用户检索正确数据的正确方法,或者可以通过查询专门提取它,而不是在我得到所有数据的响应并使用循环将用户表主键与评论相匹配之后表用户ID

最佳答案

您的表是正确的,因此您将拥有“用户”和“评论”表,其中“评论”表将具有引用“用户”表主键的“UserId”。

这就是所谓的一对多关系。 (意味着 1 个用户可以有多个评论)。评论表中可以有多个 userId,它们引用用户表中的 1 个用户。

取决于您是否可以使用 join 的用例,例如,如果您已经有用户,您想获得所有评论,只需说:

SELECT * FROM COMMENTS WHERE UserId=%UserId%

如果,您想获得前 10 条评论,以及用户信息,您可以使用 INNER JOIN。

SELECT Users.UserName, Comments.* 
FROM Comments
INNER JOIN Users
ON Users.UserId == Comments.UserId
LIMIT 0, 10;

然后您将获得评论数据以及相应的用户信息。

关于MySQL 为用户连接并提取正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47129886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com