我遇到了一个错误,我似乎无法通过谷歌搜索找到答案。
我想要做的是加入3个表,只在计算机位于第1和第3个表时显示结果。我还需要将第二个表与大多数信息一起加入。我遇到的问题是我的第三个左连接没有连接。 SelOrder& SelUnit来自页面网址中的一些变量。
SELECT *
FROM admins.computers
LEFT JOIN admins.users ON admins.computers.`lastuser` = dmins.users.`userid`
LEFT JOIN vulnerability.$SelOrder ON admins.computers.`cName` =
vulnerability.$SelOrder.`cName`
WHERE admins.users.`Org` like '$SelUnit'
ORDER BY admins.computers.`cName` ASC
我得到的错误是
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近' -093 ON admins.computers。
cName
= 漏洞.MS15-093。cName
WHERE管理员。'在线
答案 0 :(得分:1)
错误消息以及您的问题清楚地表明您的$Selorder
变量具有值
MS15-093
您正尝试将该值用作列名。但MySQL将连字符视为减法符号,然后无法理解结果。要使用具有该类型名称的列,必须在反引号中将其转义。所以,试试这个:
JOIN vulnerability.`$SelOrder`
ON admins.computers.`cName` = vulnerability.`$SelOrder`.`cName`
为了更加安全,请将列名限制为字母数字和下划线字符。