千家信息网

如何解决MySQL左连接问题

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容介绍了"如何解决MySQL左连接问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!两张表,一
千家信息网最后更新 2025年01月23日如何解决MySQL左连接问题

本篇内容介绍了"如何解决MySQL左连接问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

两张表,一张user表,一张user_log表

CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(20) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `user_log` (  `id` int(10) NOT NULL,  `user_id` int(10) NOT NULL,  `log_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',  `message` varchar(30) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', 'wang');INSERT INTO `user` VALUES ('2', 'meng');INSERT INTO `user` VALUES ('3', 'zhang');-- ------------------------------ Records of user_log-- ----------------------------INSERT INTO `user_log` VALUES ('1', '1', '2017-07-20 13:13:07', 'some data');INSERT INTO `user_log` VALUES ('2', '1', '2017-07-27 13:13:07', 'some data');INSERT INTO `user_log` VALUES ('3', '1', '2017-07-28 13:13:07', 'some data');INSERT INTO `user_log` VALUES ('4', '1', '2017-08-26 13:11:31', 'some data');INSERT INTO `user_log` VALUES ('5', '1', '2017-08-26 17:11:31', 'some data');INSERT INTO `user_log` VALUES ('6', '1', '2017-08-27 13:11:31', 'some data');

这样就可以了

SELECT U.*, UL.LOG_TIME, UL.MESSAGE  FROM USER U  LEFT JOIN USER_LOG UL    ON U.ID = UL.USER_ID   AND (UL.LOG_TIME > '2017-09-01 07:13:07' OR UL.LOG_TIME IS NULL) WHERE U.ID = 1;

把and放到left join on后面就可以了。

"如何解决MySQL左连接问题"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0