在屏幕截图和项目中,projectId是连接器。当我运行以下sql代码时,我收到以下错误:
SQL代码:
SELECT * FROM screenshots s, projects p WHERE s.projectId == p.projectId ORDER BY s.idscreenshot DESC
错误:
发生数据库错误
错误号码:1064
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行'== p.projectId ORDER by s.idscreenshot DESC'附近
SELECT * FROM screenshots s,projects p WHERE s.projectId == p.projectId ORDER BY s.idscreenshot DESC
文件名: C:\工作区\ htdocs中\一月-2012 \ nurbell \ SYSTEM \数据库\ DB_driver.php
行号:330
有人知道为什么会这样吗?
答案 0 :(得分:3)
这是因为SQL equality operator是=
,而不是==
。
强烈建议使用显式JOIN语法来关联表,而不是使用您正在使用的隐式连接语法。因此,例如,而不是:
SELECT *
FROM screenshots s, projects p
WHERE s.projectId = p.projectId
ORDER BY s.idscreenshot DESC
你应该用这个:
SELECT *
FROM screenshots s
JOIN projects p ON s.projectId = p.projectId
ORDER BY s.idscreenshot DESC
答案 1 :(得分:1)
使用单个=
代码而不是==