草庐IT

join_group

全部标签

sql - MySQL 需要帮助构建查询 : join multiple tables into single row

如果这个问题已经被问到并得到回答,请原谅我,我已经搜索并找到了一些看起来相似的问题,但我是SQL的新手,无法根据我的需要调整它们。如果我没有使用正确的术语,也请原谅我,我知道当有人问问题并且他们甚至不知道足够的知识来询问他们需要什么时,这会很烦人。好吧,我不明白源数据到底是什么样子的,这就是我得不到我想要的东西的原因。感谢@goran插入我将真正的源表发布到这里(我仍然不打算发布,因为我懒得对它们进行适当的编辑以便于查看和保护无辜者,但我应该有至少在询问之前将它们打印出来)。下面是新修改的示例表,但我仍然没有弄清楚如何实现将所有内容都放在一行中的最终目标。table_one:idnam

php - 如何在 Kohana 的查询生成器中使用 ORDER BY 和 GROUP BY 构建 UNION 查询?

我正在尝试使用Kohana'squerybuilder构建UNION查询.一切正常,直到我添加GROUPBY或ORDERBY子句。这是我使用的代码(简化):$query1=DB::select('p.name')->from(array('person','p'))->where('p.organization','LIKE','foo%')->limit(10);$names=DB::select('sh.name')->union($query1,FALSE)->from(array('stakeholder','sh'))->where('sh.organization','LI

mysql - group by 语句的前 2 个结果?

我有一个表“record:id,name,score”,想查询每个名字的2个最高分。我正在使用groupby来获得最高分:selectname,max(score)asscorefromrecordgroupbynameorderbyscore但我认为使用groupby不可能获得2个最高分,我如何获得它们? 最佳答案 SELECTname,scoreFROMrecordR1WHERE(SELECTCOUNT(DISTINCTscore)FROMrecordR2WHERER2.name=R1.nameANDR2.score>=R1.s

MySQL - 按 count() 和 GROUP BY 排名

我有我的mysql表posts,其中存储了我论坛的所有帖子。是这样的:iduidthreadposttitletexttime(int)(int)(varchar)(int)(varchar)(text)(int)现在我想在用户个人资料上显示排名(帖子数量排名)。我试过这样的事情:set@rownum:=0;SELECT@rownum:=@rownum+1ASrank,uid,count(id)FROM`posts`GROUPBYuidORDERBYcount(id)但它返回的数据不正确。uid和count(id)匹配,但排名错误。我的条目是这样的:rankuidcount(id)11

MySQL Group By 并水平显示

假设我有下表:1)tblScore============================DateVendorIDScore============================12/09/0112001A12/09/0112001A12/09/0112002B12/09/0212003C12/09/0212003A12/09/0312001C============================我有这个问题:SELECTts.VendorID,ts.Score,COUNT(*)FROMtrxscoretsGROUPBYts.VendorID,ts.ScoreORDERBYts.V

mysql - 如何在 MySQL 中使用 JOIN 编写正确的 If...Else 语句?

我是MySQL的初学者,我只知道完全基本的语句,但是现在我该学习一些更困难但更有值(value)的东西了。我实际上在MySQL中有3个表,这是表示:用户:user_id|name|country---------------------------1|Joseph|US2|Kennedy|US3|Dale|UK管理员:admin_id|name|country----------------------------1|David|UK2|Ryan|US3|Paul|UK注意事项:id|n_id|note|comment|country|type|manager-------------

mysql - 将 SQL 语句中的 NOT IN 替换为 LEFT JOIN

我写了两个运行良好的查询,但它们真的很慢:SELECTdirectorFROMmoviesWHEREidNOTIN(SELECTmovie_idFROMstars_in_moviesWHERERstar_id=%s);SELECTfirst_name,last_nameFROMstarsWHEREidNOTIN(SELECTstar_idFROMstars_in_moviesWHEREmovie_idIN(SELECTmovie_idFROMstars_in_moviesWHEREstar_id=%s))我尝试将NOTIN替换为INNERJOIN和LEFTJOIN但到目前为止我没有尝试

mysql - 使用 GROUP BY 时包括缺失的(零计数)行

我有一个接收短信的应用程序。我想做的是用mysql统计一个小时内的消息。例如,早上7点我收到了10条短信,早上8点我收到了20条等等。我的表有ID、smsText、smsDate这列……(其他的并不重要)。当我运行这个脚本时:SELECTHOUR(smsDate),COUNT(ID)FROMSMS_MESSAGESGROUPBYHOUR(smsDate)它显示我每小时收到多少条消息。问题是当我没有收到任何消息时,例如在下午5点,此语句不会返回计数为0的第17行,我得到如下结果:HourCount...1510165182...,而我想要得到的是这个HourCount...1510165

MYSQL 在 group by 语句中使用 AND 而不是逗号

使用AND有什么区别SELECTid,textFROMtableGROUPBYidandtext并使用逗号,SELECTid,textFROMtableGROUPBYid,text如果事物具有任一元素,它就会将它们组合在一起。浏览器a,aa,bb,bb,bx,z使用和返回a,ax,z使用,返回a,aa,bb,bx,z这样做的目的是什么,为什么要使用它? 最佳答案 多么有趣的问题...因此,经过一些探索(向内探索带来深深的宣泄满足感和探索google的MySQL文档)和测试后,我可以帮助您:'AND'是组合两个bool测试的逻辑运算符

MySql Left Join with subselect

我有2个表(用户和信息)。我需要选择所有用户数据和相关的最后插入的“信息文本”(插入时间)表用户+----+--------+----------+|id|name|adress|+----+--------+----------+|1|Name1|Adress1||2|Name2|Adress2||3|user3|adress3||4|user4|adress4|+----+--------+----------+表格信息+----+---------+----------+---------------------+|id|id_user|infotext|insert_time|