我正在尝试内部联接更新查询,但我得到一个关于我的语法的错误,据我所知,它看起来很好(我可能正在查看的东西)所有的表都在那里,我已经包含在这篇文章中为你 .
My error
警告:PDOStatement :: execute():SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在“FROM applications INNER JOIN jobs on applications.app”附近使用正确的语法 .
My SQL
$sql = "UPDATE applications
SET applications.application_status = 1
FROM applications
INNER JOIN jobs
ON applications.application_job = jobs.job_id
WHERE applications.application_user = ?
AND jobs.job_enabled=1";
Jobs table I am inner joining
CREATE TABLE IF NOT EXISTS `jobs` (
`job_id` int(11) NOT NULL,
`job_name` varchar(100) NOT NULL,
`job_description` text NOT NULL,
`job_duration` int(11) NOT NULL,
`job_country` varchar(100) NOT NULL,
`job_category` int(50) NOT NULL,
`job_user` int(100) NOT NULL,
`job_employer` varchar(100) NOT NULL,
`job_enabled` int(2) NOT NULL DEFAULT '1',
`job_startdate` date NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Applications table I am updating
CREATE TABLE IF NOT EXISTS `applications` (
`application_id` int(11) NOT NULL,
`application_user` varchar(100) NOT NULL,
`application_date` datetime NOT NULL,
`application_job` int(11) NOT NULL,
`application_status` int(11) DEFAULT '0',
`application_enabled` int(2) NOT NULL DEFAULT '1'
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
1 回答
MySQL不支持
Update
Statement中的FROM子句 . 与SQL Server不同,join
语句也需要在SET
之前 . 你可以这样做: