草庐IT

CREATED_BY

全部标签

mysql - 使用 LEFT JOIN 和 ORDER BY...LIMIT 查询速度慢,使用 Filesort

我有以下查询:SELECTfruit.date,fruit.name,fruit.reason,fruit.id,fruit.notes,food.nameFROMfruitLEFTJOINfood_fruitsASffONfruit.fruit_id=ff.fruit_idANDff.type='fruit'LEFTJOINfoodUSING(food_id)LEFTJOINfruits_sourASfsONfruits.id=fs.fruit_idWHERE(fruit.date以及您可能想要的所有索引,包括正在使用的以下索引:fruit-fruit_filter(size,sta

mysql - 当我使用 left join 和 group by 时,sum 不起作用

我有两个表:进口和订单:我分别附上了它们。我想要以下内容:1.imports表中相同product_id的总金额2.订单表中相同product_id的件的总和作为状态明智。我的查询是:SELECT`Import`.*,SUM(casewhenorders.status="sold"THENorders.pieceselse0end)astotal_sell,SUM(casewhenorders.status="Nocontact"THENorders.pieceselse0end)asno_contact,SUM(casewhenorders.status="confirmed"THE

mysql - 使用 group by 优化 MySQL 范围查询

我有一个包含每天温度的表(大表)和一个包含期间开始和结束日期的表(小表)。现在想知道每个时段的平均气温,但是查询时间比较长。可以改进吗?注意:升级到5.6.19-1~exp1ubuntu2版本后,较长的响应时间消失,可能是5.6.8之前的MySQL版本中的错误引起的(参见Quassnoi的评论)用随机数据重建日表和周期表:createtabledays(dayintnotnullauto_incrementprimarykey,temperaturefloatnotnull);insertintodaysvalues(null,rand()),(null,rand()),(null,r

mysql - Rails 4 : Error when trying to sort by using arel_table. maximum.desc

我得到了一个具有多对多关系的Order和Product模型。所以一个订单有_很多产品,每个都有不同的价格。现在我想根据订单中产品的最高价格对订单进行排序。这是我的代码:@orders=Order.group(arel_table[:id]).order(Product.arel_table[:price].maximum)它与默认的ASC顺序完美配合,但是当我将它排序为DESC顺序时,如下所示:@orders=Order.group(arel_table[:id]).order(Product.arel_table[:price].maximum.desc)我遇到这样的错误:undef

mysql - Order By 导致我的查询运行非常慢

我有一个sql查询如下select*fromincidentswhereremote_ip='192.168.1.1'andis_infringement=1orderbyreported_atdesclimit1;目前这个查询需要313.24秒才能运行。如果我删除orderby那么查询就是select*fromincidentswhereremote_ip='192.168.1.1'andis_infringement=1那么运行只需要0.117秒。reported_at列已编入索引。所以有2个问题,首先为什么这个order_by语句要花这么长时间,其次我怎样才能加快它的速度?编辑:

php - 从表中选择所有 ORDER BY 另一个表列,匹配主键

这个问题在这里已经有了答案:PHP/MySQLOrderbycolumninadifferenttable(2个答案)关闭5年前。我已经找了一段时间,但我试图完成的查询似乎很难找到任何关于如何做我想做的事情的信息或文档。我有两个表,其中一个存储我的用户帐户和基本信息。然后我有第二个表,其中包含有关用户的更多信息。这两个表都有主键(表一是id,表二是user_id),我用它来知道谁是谁,并在两个表之间匹配记录。我今天要做的是从表一中获取10条记录,按表二(room_count)DESC中的列排序。表#1的名称是“users”,表#2的名称是“user_information”。我尝试了什

sql - 在 SQL 中,没有 Count(*) 或 Sum()、Max()、avg() 等的 Group By 是什么意思,它有哪些用途?

在SQL中,如果我们不使用Count(*)或Sum()等而使用GroupBy,那么结果如下:mysql>select*fromsentGifts;+--------+------------+--------+------+---------------------+--------+|sentID|whenSent|fromID|toID|trytryWhen|giftID|+--------+------------+--------+------+---------------------+--------+|1|2010-04-24|123|456|2010-04-2401:5

MySQl GROUP BY 和 ORDER BY 没有做我想做的事

我想在对结果进行分组之前对其进行排序,但我似乎无法完成。我有这个问题:SELECTDISTINCTproduct.id,product_number_value.att_valueASproduct_number,color_number_value.option_codeAScolor_number,size_value.option_codeASsize_code,size_value.option_positionASsize_positionFROMproductINNERJOINproduct_attribute_relationalASproduct_number_rela

sql - GROUP BY 查询未按预期排序

我不知道为什么我不能让这个查询按我想要的方式工作,希望你能赐教。SELECTe.id,e.num,e.name,s.nameass_name,t.numast_num,e.show_idFROMs_episodeseLEFTJOINshowssONs.id=e.show_idLEFTJOINs_seasonstONt.id=e.season_idGROUPBYe.show_idORDERBYe.dateaddedDESCdateadded是一个整数(unix时间戳)。e.num,t.num也是int。本应显示最新添加的剧集,但是当GROUPBY对行进行分组时,列出的剧集不是最新的,而是

sql - MySQL SELECT n条记录基于GROUP BY

假设我有SQL记录:Country|NumberUSA|300USA|450USA|500USA|100UK|300UK|400UK|1000我正在做这样的事情:SELECT*FROMtableGROUPBYCountry。如果,我想选择在每个国家/地区只显示2个最大数字的结果怎么办?我该如何存档?结果是:Country|NumberUSA|450USA|500UK|400UK|1000 最佳答案 示例数据createtabledata(Countryvarchar(10),Numberint);insertintodatasele