草庐IT

join_group

全部标签

php - MySQL GROUP BY 和填充空行

我确定之前已经回答过这个问题,但我找不到我需要的详细信息。对于分析系统,我需要能够对行进行分组并将它们返回到图表上,按分钟、小时、天、月或年分组。我可以正常工作(下面的示例代码)。SELECTCOUNT(DISTINCTuser_id),`hour`,`timestamp`FROMtracking_requestWHEREsite_id='3'AND`timestamp`'2011-08-2922:00:00'GROUPBY`hour`,`day`,`month`,`year`ORDERBY`timestamp`ASC问题是,像大多数图表一样,我需要填补没有数据的空白(例如,最后3分钟

MySQL:在没有 JOIN 或 UNION 的情况下合并两个不同的表

我需要合并两个表:两者都有一个主键列日期,但具有不同的值(不同的时间间隔)。两者都有不同的(未知)列:我不知道列的名称(两个表中可能出现相同的列名),我不知道有多少列,但都是相同的类型。一个例子:table1date|colA|colB|colC2011-02-02|1.09|1.03|1.04table2date|col1|col2|col3|col42011-02-03|1.03|1.02|1.07|1.03查询的结果应该是这样的:tableResultdate|colA|colB|colC|col1|col2|col3|col42011-02-02|1.09|1.03|1.04|

mysql - 带有 LIMIT 的 MySQL JOIN 是否在内部进行了优化?

表community作为id:int,name:varchar。另一个表category_people作为community_id:int,person_id:int。带有LIMIT查询的JOIN可以是SELECTb.user_id,group_concat(a.nameSEPARATOR',')asgroupsFROMcommunitiesaJOINcommunities_usersbONa.id=b.community_idGROUPBYb.user_idLIMIT1000OFFSET2000;在此查询中,MySQL是否会执行任何内部优化(a)先执行限制、偏移部分,然后再连接,或者

mysql - 如何仅在 WHERE COUNT(使用 GROUP BY 的子查询)=1 时更新值?

当它是组中唯一的行时,我试图通过单个查询将行值设置为1。当前表(CATEGORY_BRAND):|categoryId|brandId|featured||-----------+---------+----------||1|100|-1||1|101|-1||1|102|-1||2|100|-1||3|110|-1||3|111|-1||4|102|-1||5|101|-1||6|100|-1||6|110|-1||...|...|...|希望的结果(CATEGORY_BRAND):|categoryId|brandId|featured||-----------+--------

mysql - 在 Join 中测试空子查询

我有一个带有非空日期字段的事件表。基于数据透视日期和偏移量,查询必须返回接下来的2个事件。这是我要构建的查询:SELECTe.*FROMEventsaseJOIN(--latesteventbeforepivotdate,withoffsetSELECT*FROMEventswheredateeFirst.date||(e.date=eFirst.date&&e.id>=eFirst.id)ORDERBYe.date,e.idLIMIT2按日期ASC排序时具有以下事件序列(为了简单起见,没有相等的日期):e0-e1-e2-...-e10这里有一些想要的结果::dateRef=e2.da

mysql group_concat 问题

我只是想知道这是否可能是MYSQLGROUP_CONCAT返回此类数据的功能。这是一个场景SELECTGROUP_CONCAT(marks)AS`ineedonly40intinthiscolumn`FROMmarks当我执行这个查询时,结果会像这样显示需要结果40 最佳答案 试试这个:selectgroup_concat(m.marks)from(selectdistinctmarksfrommarkslimit40)m 关于mysqlgroup_concat问题,我们在StackOv

mysql - 缓慢的 MySQL IN 查询——如何转换为 JOIN?

我目前的MySQL查询最多需要10秒才能在我的应用程序中运行:SELECTtagid,tagFROMtagsWHEREtagidIN(SELECTDISTINCTtagidFROMnews_tagsWHEREnewsidIN(SELECTnewsidFROMnews_tagsWHEREtagidIN(16,32)GROUPBYnewsidHAVINGCOUNT(newsid)>=2))ANDtagidNOTIN(16,32)ORDERBYlevel,tagid使用的表格是:表news_tags,列newsid,tagid表tags,列tagid,tag,level查询的目的是查找带有t

php - 基于用户级别不同的mysql join查询

我正在寻找执行以下操作的想法或最佳实践:我有表格:profile包含基本信息(id、email、pass、lvl)profile_user包含(pid、姓名、年龄等)profile_mod包含(pid、company_name、money等)如您所见,我将对两个表进行左连接以获取全部信息,但连接将全部基于属性lvl。如果lvl=1它将在profile_user上左连接,而lvl=2将在profile_mod上执行连接。我的问题是,我不想对每个查询执行检查以获取lvl,然后对其他两个表执行leftjoin。我想知道这种情况是否有最佳实践。 最佳答案

mysql - "group by"可以不丢失原始行吗?

我有这样的查询:ID|name|commentsCount1|mysqlfordummies|332|mysqlbeginnersguide|22SELECT...,commentsCount//willreturn33forfirstrow,22forsecondoneFROMmycontentsWHEREnameLIKE"%mysql%"我还想知道所有行的评论总数:SELECT...,SUM(commentsCount)AScommentsCountAggregate//shouldreturn55FROMmycontentsWHEREnameLIKE"%mysql%"但是这个显然

MySQL GROUP_CONCAT 与 COALESCE 关于 NULL 值

更新我刚刚注意到,在服务器中,table3.note列的值是NULL,而在我的本地机器上,它们是空字符串。在这个令人尴尬的发现之后,我进行了一些测试,结果在两个平台上一切都一样。如果我有两个单元格并且第二个单元格包含一个实际值(第一个是NULL),这就是它们产生的结果://1stGROUP_CONCAT(COALESCE(`table3`.`note`,'')SEPARATOR';')AS`table3_note`//var_dump():array(2){[0]=>string(0)""[1]=>string(4)"Test"}//2ndGROUP_CONCAT(`table3`.`