这是一个语法错误,我很肯定...但是我正在敲打着为什么'。我搜索了所有"喜欢"这里有关于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
。
对于字段标识,.
的位置是否是逻辑错误?
答案 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
关键字是互斥的。它是一个或另一个。使用逗号分隔表与内部联接相同。如果您想要外部联接(使用关键字LEFT
或RIGHT
),则必须使用带有JOIN
关键字的格式。