0

我有 sql 查询从多表中选择值。

我使用了 left join ,但我有一个问题。

我想左加入另一个表,但问题是这个表名是关于同一查询中列的值。

这是查询:

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';

当我执行此查询时,出现此错误:

SELECT 命令拒绝用户 'jason'@'62.100.08.01' 用于表 'module' database_tags_assign.sql

那么我该如何解决这个问题呢?

4

2 回答 2

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 数据库。

于 2012-12-26T17:19:59.280 回答
0

您通过身份验证的用户(您传递给connect函数的用户)无权访问SELECT该数据库或表。您需要进入控制面板并授权用户名来执行此操作,或者您使用了错误的用户名/密码。

于 2012-12-26T15:40:53.493 回答