草庐IT

join_group

全部标签

mysql - 使用 group by 组合两个查询

在弄清楚其中的逻辑时遇到了一些麻烦。请参阅下面的两个查询:查询1:SELECTcId,crId,COUNT(EventType)FROMDataWHEREEventType='0'OREventType='0p'OREventType='n'OREventType='np'GROUPBYcrId;查询2:SELECTcId,crId,COUNT(EventType)ASClicksFROMDataWHEREEventType='c'GROUPBYcrId;只是想知道是否有办法让我在查询2末尾得到的列出现在查询1中。由于where语句不同,所以不确定去哪里,以及我的任何子查询我写的只是没

MySQL count, left join, group by 返回零行

在下面的sql语句中:SELECT`keywords`.keyID,count(`keywords-occurencies`.keyID)ascountOccurenciesFROM`keywords-occurencies`LEFTJOIN`keywords`ON`keywords-occurencies`.keyID=`keywords`.keyIDWHERE`keywords-occurencies`.`keyID`IN(1,2,3)ANDdateBETWEEN'2013/01/25'AND'2013/01/27'GROUPBY`keywords`.`keyID`如果keyID3

mysql - 在 mysql inner join 中使用星号 (*)?

我一直在做这样的内连接SELECTOrders.OrderID,Customers.CustomerName,Orders.OrderDateFROMOrdersINNERJOINCustomersONOrders.CustomerID=Customers.CustomerID;在其中指定所需的每一行。我目前正在使用一个有50行的表,但是我不想在所有行中键入所有这些SQL连接,有没有办法说“从订单中选择*,然后给我Customers.CustomerName加入。...”而不是指定第一个表中的每一行? 最佳答案 SELECTOrde

MySQL:带有 JOIN 的 SUM() 返回不正确的值

我正在尝试为表中的每个用户获取SUM(),但MySQL返回了错误的值。它应该是这样的(http://sqlfiddle.com/#!2/7b988/4/0)useramount11020.89831924438511443.14483642578111520.48763847351111626.0748329162611793.054000854492但这就是它的样子(http://sqlfiddle.com/#!2/7b988/2/0)useramount110167.186554114129.434509115143.413469116208.598663117744.432007

mysql - (My)SQL 如何评估链式 LEFT/INNER JOIN?

我们有3个表:T1:T2:T3:id|t3_idid|nameid|t2_id-----------------------------1|21|abc1|12|NULL2|1232|13|13|ab13|34|44|32b4|2现在我们测试了以下JOIN:1.:SELECT*FROMT1INNERJOINT3ONT1.t3_id=T3.idINNERJOINT2ONT3.t2_id=T2.idWHERET2.name='%'这个案子很清楚。结果:T1.id|T1.t3_id|T3.id|T3.t2_id|T2.id|T2.name---------------------------

php - mysql multiple COUNT() from multiple tables with LEFT JOIN

我想展示所有用户的结论。我有3个表。表格帖子post_id(index)user_id11233344table照片photo_id(index)user_id12243141表格视频photo_id(index)user_id14243343和表用户user_id(index)user_name1mark2tommy3john4james事实上,每个表都有超过4行。我想要这样的结果。idnamepostphotovideos1mark1202tommy0103john2024james1125........下面的代码是可以正常工作但速度很慢的SQL,如果你能帮助我如何使用LEFTJ

php - 不使用 GROUP_CONCAT 的原因?

我刚刚发现了这个非常有用的MySQL函数GROUP_CONCAT。它对我来说是如此有用和过度简化,以至于我实际上害怕使用它。主要是因为自从我开始网络编程以来已经有一段时间了,而且我从未在任何地方见过它。下面是一个很棒的用法示例clients表包含客户(您不会说...),每个客户一行,具有唯一ID。表currencies有3列client_id、currency和amount。现在,如果我想从clients表中获取用户15的name及其余额,使用“旧”数组覆盖方法,我必须使用以下SQLSELECTid,name,currency,amountFROMclientsLEFTJOINcurr

MySQL 错误 : Non-grouping field is used in HAVING clause

有没有办法更正此查询,使其在启用ONLY_FULL_GROUP_BY的情况下工作?SELECTLOWER(s)ASlower_s,SUM(i)ASsum_iFROMtGROUPBY1HAVINGLENGTH(lower_s)给出错误信息Non-groupingfield'lower_s'isusedinHAVINGclauseFiddle 最佳答案 你为什么不直接使用whereLENGTH(LOWER(s))似乎使用了having不在这里。根据havingsqlwikiAHAVINGclauseinSQLspecifiesthata

mysql - Laravel Left join 向右表添加 where 子句

如果我在左连接中添加一个where子句,这个where子句在右表上工作,我只会从左表中获得可以匹配右表的结果。$notifications=\DB::table('notifications')->select(\DB::raw("notifications.uuid,images.local_pathastitle_image"))->leftJoin('images','images.owner_uuid','=','notifications.uuid')where('images.relation','=','notification_title');我怎样才能将这个where

MySQL:有没有办法有条件地 LEFT JOIN? (或类似的?)

我正在编写查询以获取products表中的ALL产品,以及每个产品的销售价格IFaspecials表中存在该项目的记录。我正在寻找的是这样的东西:SELECT*FROMproductsPIF(S.specials_date_availableNOW()){//Thesalehasstarted,buthasnotyetexpiredLEFTJOINspecialsSONP.products_id=S.products_id}我知道MySQL不是一种编程语言,但是有没有一种方法可以创建一个查询来产生与上述逻辑等效的结果?结果集应该是这样的:IDNamePriceSalePrice1Wid