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后面就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值