MySQL - 用户

时间:2016-01-18 18:50:55

标签: php mysql mysql-workbench

这是一个语法错误,我很肯定...但是我正在敲打着为什么'。我搜索了所有"喜欢"这里有关于SO的问题,他们都(主要)解决了权限错误的用户..我向你保证,情况并非如此。

这是我的查询:

use database;    # I am using workbench .. I use this so I don't have to database.table  

SELECT firstname
FROM user, user_role
LEFT JOIN user.uid ON user_role.uid

WHERE user.firstname LIKE '%zak%';

确切的错误是

Error Code: 1142. SELECT command denied to user '###'@'##.##.##.##' for table 'uid' 0.197 sec

我不是在寻找名为uid的TABLE ..我正在寻找FIELD iud

我已将声明截断到导致错误的部分..还有其他字段和其他表格..但我只能JOIN

对于字段标识,.的位置是否是逻辑错误?

2 个答案:

答案 0 :(得分:1)

尝试这样写:

SELECT firstname
FROM user 
LEFT JOIN user_role ON user.uid = user_role.uid
WHERE firstname LIKE '%zak%';

答案 1 :(得分:1)

您应该使用:

SELECT firstname
FROM user, user_role
WHERE user.uid = user_role.uid

如果您想要user表中的所有记录,无论user_role中的内容是什么,请使用

SELECT firstname
FROM user
    LEFT JOIN user_role
ON user.uid = user_role.uid

使用逗号分隔表并使用JOIN关键字是互斥的。它是一个或另一个。使用逗号分隔表与内部联接相同。如果您想要外部联接(使用关键字LEFTRIGHT),则必须使用带有JOIN关键字的格式。