gpt4 book ai didi

MySQL 可以运行 select * 查询,但不能在 View 上选择列

转载 作者:行者123 更新时间:2023-11-30 01:19:17 25 4
gpt4 key购买 nike

(此问题已解决。请参阅下面的答案)

我使用以下查询创建了一个 View :

SELECT TableA.ColA as ColA, User.ID as UserID, User.FirstName, User.LastName, User.Email, TableC.ID as RoleID, TableC.Name as Role FROM Permission
LEFT JOIN TableB ON TableA.ColA = TableB.ID
LEFT JOIN TableD ON TableD.ID = TableB.OrganizationID
LEFT JOIN User ON User.ID = TableA.UserID
LEFT JOIN TableC ON TableC.ID = TableA.RoleID
WHERE User.Active = 1 AND (TableA.ResourceType = 1
OR (TableA.ResourceType = 5 AND TableD.ID = TableB.OrganizationID))
OR User.Active = 1 AND TableC.ID = 1
ORDER BY ColA, UserID ASC

View 已成功创建并按预期工作。我可以做一个SELECT * ON view_test就没有问题的观点。但是,如果我尝试从 View 中选择特定列,例如 SELECT ColA FROM view_test ,它返回并显示以下错误消息:

#1356 - View 'database.view_test' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

我运行此程序的帐户是 root,如果由于某种原因出现问题,我已重新授予对此数据库中所有内容的访问权限。我看过 mysql 中的 View 数据库的一部分,看起来不错。我可以毫无问题地运行它。我可以做一个SELECT ColA FROM ([view_sql_block_from_above]) as a而且效果也很好。只有在创建为 View 之后才会出现这些问题。

任何帮助将不胜感激。

===编辑===

以下是 SELECT COLUMNS FROM view_test 的输出

show columns from view_test;
+-----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+-------+
| ColA | int(11) | YES | | NULL | |
| ColB | int(10) unsigned | YES | | 0 | |
| ColC | varchar(30) | YES | | NULL | |
| ColD | varchar(30) | YES | | NULL | |
| ColE | varchar(50) | YES | | NULL | |
| ColF | int(10) unsigned | YES | | 0 | |
| ColG | varchar(30) | YES | | NULL | |
+-----------+------------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

最佳答案

我已经解决了这个问题。结果是 View 中有一个内置的 ORDER BY ColA 命令,但是如果 ColA 不是针对 View 本身的查询的一部分,它将提供该错误消息。

因此,要解决此问题,我只需从 View 中删除 ORDER BY 或在查询中包含 ColA 列。或者,我将 ORDER BY 从 ColA 更改为 TableA.ColA,因此排序发生在源表而不是派生 View 中。

感谢所有为此解决方案提供帮助的人。

关于MySQL 可以运行 select * 查询,但不能在 View 上选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18730736/

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