gpt4 book ai didi

MySQL命令中的一个点是什么意思?

转载 作者:行者123 更新时间:2023-11-29 19:15:02 28 4
gpt4 key购买 nike

我是 mysql 的新手,必须为自定义 mysql asp.net 身份存储编写一个实现。

我按照本教程完成了第一步。 https://learn.microsoft.com/en-us/aspnet/identity/overview/extensibility/implementing-a-custom-mysql-aspnet-identity-storage-provider现在我有以下 mysql 命令:

"Select Roles.Name from UserRoles, Roles where UserRoles.UserId = @userId and UserRoles.RoleId = Roles.Id"

我现在的问题是我不知道表必须如何查找此请求?

我会说:表名:角色选择:角色和姓名?或者它是一个名字?与 UserRoles.UserID 和 UserRoles.RoleId 相同这句话的意思是什么?

非常感谢

最佳答案

你的问题很不清楚,但是,如果我理解正确的话,你无法清楚地弄清楚你正在使用的数据库架构是如何构造的以及你将从这个查询中得到什么。

您编写的查询SELECT是来自名为Roles 的表的名为Name 的数据字段。为此,查询使用来自两个表的数据:一个是 Roles 表本身,另一个称为 UserRoles

它只会从 Roles 表中提取具有 IdRoles 条目的 Name 数据与 UserRoles 表中 UserId 等于给定 @UserId 的条目的 RoleId 字段匹配的字段。

换句话说,这个 SELECT 查询将为您提供来自 Roles 中条目的 Name 列表。与给定条件检查匹配的表,即 where SQL 条件后写入的内容:where UserRoles.UserId = @userId and UserRoles.RoleId = Roles.Id.

最后一点“。”在 SQL 查询中,用于消除具有相同名称但来自不同表的字段(或列,如果您想这样调用它)之间的歧义。例如,所有表都有一个 Id 字段是很常见的。您可以通过写入 Table1.Id、Table2.Id 等来识别数据库中正确的 Id 字段。即使表列中没有命名冲突,添加表名称也可以非常有利于代码的可读性。

编辑:正如其他用户在您的问题的评论中正确指出的那样,您还应该了解一下 SQL JOIN 操作是什么。由于您正在使用来自不同表的信息搜索数据,因此您实际上是在这些表上执行隐式 JOIN

关于MySQL命令中的一个点是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42783512/

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