该计划是从表工作左表连接到表项目。这之后,我想过滤用通配符work.workdate =“2013-12-%”的结果 - 结果应该是做本月结合项目MySQL左加入其他相似条件
表工作
CREATE TABLE IF NOT EXISTS `work` (
`idwork` int(11) NOT NULL AUTO_INCREMENT,
`iduser` int(11) NOT NULL,
`idproject` int(11) NOT NULL,
`workdate` varchar(45) NOT NULL,
`duration` varchar(45) NOT NULL,
`description` varchar(45) NOT NULL,
PRIMARY KEY (`idwork`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
工作
表项目
CREATE TABLE IF NOT EXISTS `project` (
`idproject` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`id` int(11) DEFAULT NULL,
PRIMARY KEY (`idproject`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
声明
SELECT * FROM work LEFT JOIN project ON work.idproject=project.idproject AND work.workdate LIKE '2013-12-%';
- 输出:每一行。是不是从2013年12月该行在项目部分 空值
- 预期输出:行只从2013年12月
那么,是我的问题吗?我必须使用括号或类似的东西吗?我搜索了Stackoverflow,但总是发现LIKE在JOIN中的问题,但那不是我想要的。 LIKE是附加条件。
啊,我看我的问题,谢谢。如果是这样的话,问题解决了 – swaechter
,使用'INNER JOIN'。 –