mysql workbench 1046_Python程序中发生错误(1046,'No database selected'),但mysql workbench中没有...

我在使用python更新mysql数据库中的记录时遇到了一个奇怪的问题。也就是说,错误1046是由python组抛出的,但是相同的mysql语句在mysql workbench中运行得非常好。在

这是mysql语句UPDATE r resultant_data d

INNER JOIN

(SELECT

uid,

SUBSTRING_INDEX(GROUP_CONCAT(login_type

ORDER BY device_ct DESC), ',', 1) devices

FROM

(SELECT

uid, login_type, COUNT(*) AS device_ct

FROM

login_record l

WHERE

l.ctime > 1451577600

AND l.ctime < 1454256000

GROUP BY uid , login_type

ORDER BY device_ct DESC) a

GROUP BY uid) ct ON d.uid = ct.uid AND d.month_id = 1

SET

d.device = ct.devices

;

我的任务是根据登录记录表将一个用户一个月内最常用的登录设备更新为表结果数据。所以第一步(最里面的查询):创建一个表,显示uid、登录设备、登录时间(即设备)。第二步(第二个最里面的查询):根据设备,找出与most设备关联的uid和登录类型。第三步(更新层):匹配uid并将记录更新为结果的_数据。在

那么问题是不是来自python?还是mysql语句?我怀疑这个问题是由“inner join”命令引起的(虽然它在mysql workbench中工作正常。我以前有一个类似的问题,通过将“inner join”重写为“where uid in(select….)”,解决了这个问题。但是对于这个任务,有没有办法重写或重组语句?在

非常感谢。在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值