我有sql查询从多表中选择值。
我使用了左连接,但我遇到了问题。
我想离开加入另一个表,但问题是这个表名是关于同一查询中列的值。
这是查询:
SELECT tags_assign.*,COUNT(*) AS total from tags_assign
LEFT JOIN tags ON tags.id = tags_assign.tags_id
LEFT JOIN tags_assign.module module ON module.id = tags_assign.module_id
WHERE tags.name = 'music theory';
执行此查询时,会出现此错误:
对用户'jason'@'62.100.08.01'的SELECT命令被拒绝了 'module'compam database_tags_assign.sql
那我该怎么解决这个问题呢?
答案 0 :(得分:0)
您通过身份验证的用户(您传递给connect
函数的用户)没有来自该数据库或表的SELECT
权限。您需要进入控制面板并授权用户名来执行此操作,或者您使用了错误的用户名/密码。
答案 1 :(得分:0)
我的猜测是所有表都在同一个数据库中并且查询中存在拼写错误:
SELECT tags_assign.*,COUNT(*) AS total from tags_assign
LEFT JOIN tags ON tags.id = tags_assign.tags_id
LEFT JOIN tags_assign module ON module.id = tags_assign.module_id
WHERE tags.name = 'music theory'
也就是说,而不是tags_assign.module module
只使用tags_assign module
。我的猜测是没有tags_assign数据库。