草庐IT

join_group

全部标签

PHP 或 MYSQL : how to group results by ROW?

我正在使用mysql这些是我的tableD----------id,name----------1,d12,d23,d3t----------id,name----------1,t12,t23,t3c----------id,d_id,t_id----------1,1,11,1,21,1,31,2,11,2,21,2,31,3,11,3,21,3,3我想产生一个查询来得到这样的结果-------------------------------------------d.name,t.name,t.name,t.name--------------------------------

mysql 和 group_concat_length

假设我有一个包含数百万行的表。此sql查询是否会在所有“id_list”达到“group_concat_length”限制值后立即停止,还是会测试表中的所有行?SELECTGROUP_CONCAT(id)ASid_list,typeFROMtableWHERE1GROUPBYtype 最佳答案 处理所有行和组只有一个单独的聚合被截断http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html 关于mysql和gro

mysql - "INNER JOIN"或 "IN"。哪个更快?

你能告诉我这两个句子中哪个更快吗?第一句:SELECTDISTINCT(t1.user_id)FROMtable_usersast1WHEREt1.user_townIN(SELECTt2.townFROMtable_townsast2)第二句:SELECTDISTINCT(t1.user_id)FROMtable_usersast1INNERJOIN(SELECTt2.townFROMtable_townsast2)ast3ONt1.user_town=t3.town我使用的选择通常有点复杂。如果可能,我会尝试使用IN(...),因为我可以传递一个值或一个表选择。

mysql - JOIN 或 UNION - 不确定哪个,也许两者都有

我想合并来自两个文件的数据,但我在表达排序时遇​​到了问题。我想对第一个文件的CREATED日期和第二个文件的SHARED_DATE进行排序(如果它存在并且更大)。file1:NODE#fields:CREATED,CHANGEDfile2:SHARE_CONTENTfields:SHARED_DATE,NODE#(foreignkey)select*fromNODEasnleftjoinSHARE_CONTENTasson(s.NODE#=n.NODE#)ORDERBY[higherofn.CREATEDands.SHARED_DATE] 最佳答案

Mysql (LEFT)JOIN 如何解释这种行为?

使用LEFTJOINSET@foo:=0;SELECT@fooFROMtestt1LEFTJOINtestt2ONt2.id=t1.idAND(@foo:=@foo+1);打印0,0,0,0,0,0,0...但使用JOINSET@foo:=0;SELECT@fooFROMtestt1JOINtestt2ONt2.id=t1.idAND(@foo:=@foo+1);打印1,2,3,4,5,6…有人知道吗?谢谢!更新。此查询产生相同的行,除了@foo值 最佳答案 session变量的赋值在ON子句中不起作用。您看到@foo为INNERJ

mysql - 我应该一直使用 CREATE VIEW 而不是 JOIN

我有以下查询:SELECTt.*,a.hitsASahitsFROMt,aWHERE(t.TRACKLIKE'xxx')ANDa.A_ID=t.A_IDORDERBYt.hitsDESC,a.hitsDESC运行非常频繁。表t有大约1500万行,a有大约300万行。当我对上述查询执行EXPLAIN时,我收到一条说明它总是创建一个临时表。我注意到根据上述查询创建一个临时表花了很长时间。而且,这已经完成了很多时间。因此,我想知道我是否使用上面的语句创建了一个View:CREATEVIEWv_t_aSELECTt.*,a.hitsASahitsFROMt,aWHEREa.A_ID=t.A_I

MYSQL LEFT JOIN 优化与 CASE

我花了一些时间尝试使用CASE来处理这个SELECT,但我失败了......(感谢我现在正在使用COLASCE())如何使用CASE/IF语句优化此SELECT?这是一种从字段选择的不同表中查询的快速方法吗?SELECTa.folderid,a.foldername,a.contenttype,COALESCE(b.descriptor,c.descriptor,d.descriptor,e.descriptor,f.descriptor)asdescriptorFROMt_foldersaLEFTJOINt_filesbONa.contenttype='file'ANDa.conte

mysql - 限制 GROUP_CONCAT() 或 INNER JOIN 的结果

我已经广泛阅读了讨论group_concat()和内部连接限制的其他线程,但没有找到我的答案,所以我想我会继续问它:我正在开发一个现有的照片社区网站。我想检索在给定日期(今天)过生日的成员,然后检索每个成员的5张评价最高的照片。但我也只想要10个“最喜欢”的生日成员(member)(即最喜欢的人数)。这是我拥有的:SELECTusers.user_id,users.user_name,GROUP_CONCAT(CONVERT(photos.photo_id,char(32))ORDERBYphotos.average_rate)asphoto_idsFROMusersINNERJOIN

mysql - 使用 GROUP BY 时如何强制执行 ORDER BY?

我有这个SQL:SELECTitemId,parentId,valueFROMitemORDERBYvalueDESC正确返回:+--------+------------------+|itemId|parentId|value|+--------+------------------+|1|5|500||4|1|500||2|5|10||5|1|10||3|5|0||6|1|0|+--------+----------+-------+我尝试添加“GROUPBYparentId”,但这似乎随机选择了两个项目,忽略了ORDERBY子句:+--------+--------------

php - 具有多个 INNER JOIN 的 MySQL ORDER BY

我似乎无法弄清楚如何在此MySQL选择中进行排序。我希望你能帮助我。标签:类别catId,catParentId,catDisplay101201301411511类别_翻译transId,catId,catName,catDesc,langId11Title1Desc1122Title2Desc2133Title3Desc3144Title4Desc4155Title5Desc51语言langId,langName,langCode1Danishda2Englishen我的查询:SELECT`categories`.`catId`,`categories`.`catParentId`