草庐IT

join_group

全部标签

mysql - Left Join + count + MySQL 求和

这个问题类似于mypreviousquestion.但是有几个变体(我有高级JOIN的问题,我在论坛中找不到任何有用的信息)。再次,我更改了表、字段和值的名称,只保留我的数据库的结构以便您理解。现在,假设我有这个(我不能改变结构):.人ID|AGE|COUNTRY1|25|usa2|46|mex....食物ID|PERSON_ID|CATEGORY|FOOD|UNITS1|1|fruit|apple|22|1|fruit|grape|243|1|fruit|orange|53|1|fast|pizza|14|1|fast|hamburguer|35|1|cereal|corn|2...

sql - 在 JOIN 中获得最高结果

我有三张table;拍卖、拍卖出价和用户。表结构看起来像这样:Auctions:idtitle-------1Auction12Auction2AuctionBids:iduser_idauction_idbid_amt--------------------------111200.00221202.00312100.00Users只是一个标准表,有id和用户名。我的目标是加入这些表,以便获得这些出价的最高值,以及与这些出价相关的用户名;所以我有这样的结果集:auction_idauction_titleauctionbid_amtuser_username-------------

mysql - 在 MySQL 中,如果 LEFT JOIN 不匹配任何内容,我如何计数为零?

我正在使用MySql5.5.37。我有一个查询,用于计算用户登录的次数selectu.id,IFNULL(count(*),0)FROMuseruleftjoinloginslonu.id=l.user_idgroupbyu.id;问题是,如果用户从未登录过,上面的代码仍然为该用户返回计数1,可能是因为LEFTJOIN在没有匹配行时返回NULL。我该如何更改此设置,以便在用户从未登录时我得到零,然后在他们至少登录过一次时得到适当的计数? 最佳答案 您可以对右表的其中一列使用计数。selectu.id,count(l.user_id)

MySQL COUNT()、SUM() 和 GROUP BY

我有一个关于MySQL的特殊问题。请查看下面的查询和结果集:SELECTCOUNT(c.Population)ASc,c.CityASccFROMCitycGROUPBYc.CityORDERBYc.City;261|Bristol----------------910|London----------------241|Manchester----------------我想得到COUNT的总和,所以在这种情况下,我想在下一行或新列中看到“1412”,这并不重要。有什么建议吗?我曾尝试对此应用子查询,但找不到合适的解决方案。干杯 最佳答案

php - mysql查询中出现 "isn' t in GROUP BY”错误如何解决

我有两个模型:posts和likings它们具有一对多关系(因此,一个帖子有很多喜欢)。Likings模型还有一个isActive字段,它显示喜欢是主动的还是被动的。我想获得(排序)获得最大“活跃”点赞的前5个帖子(仅考虑isActive字段为true的点赞)。这是查询:selectposts.*,count(likings.id)aslikes_countfrom'posts'leftjoin'likings'on'likings'.'post_id'='posts'.'id'and'likings'.'isActive'=1groupby'posts'.'id'orderby'li

使用LEFT JOIN时Mysql查询长时间停留在 'SENDING DATA'状态

我的查询在很长一段时间内处于SENDINGDATA状态。有人可以帮我解决这个问题吗:以下是详细信息Mysql查询:selecta.msgId,a.senderId,a.destination,a.inTime,a.statusasInStatus,b.statusasSubStatus,c.deliverTime,substr(c.receipt,82,7)asDlvStatusfrominserted_historyaleftjoinsubmitted_historybonb.msgId=a.msgIdleftjoindelivered_historycona.msgId=c.msg

mysql - If then join else 其他加入

我正在尝试找出连接多个表的查询(cca8)。有一次我需要加入两个表中的一个。所以让我们调用结果直到A点。现在我想加入B或C。当我使用B时,我得到更小的结果,或者没有结果。如果加入后没有结果,我需要改为加入C。总而言之,(A,C)的交集给出了更大的结果,如果(A,B)的交集为空,我只想加入C。在mysql中用什么方式可以更流畅地表达这一点? 最佳答案 仅当第一个连接主键为空时才连接:SELECT*FROMALEFTJOINBONA.id=B.idLEFTJOINCONB.idISNULLANDA.id=C.id

php - MySQL 选择 JOIN 3 个表

我有三个基本表:tblUsers:usrIDusrFirstusrLast1JohnSmith2BillJones3JaneJohnsonpm_data:iddate_senttitlesender_idthread_idcontent22009-07-2918:46:13Subject11111Message2!32009-07-2918:47:21AnotherSubject1222Message3!pm_info:idthread_idreceiver_idis_read111120211130322220422230本质上,我想做的是创建一个收件箱。因此,如果usrID2(Bi

忽略空字符串列的mysql group_concat

MYSQLgroup_concat()函数默认忽略空列,但不忽略空字符串列。我有一个mediumtext类型的字段,而不是null。当我在该查询上使用group_concat函数时,生成了不需要的“,,,”这种类型的值。我怎样才能避免这种情况?提前感谢您的宝贵时间。 最佳答案 将空字符串转为null:NULLIF(column1,'')NULLIF(expr1,expr2):如果expr1=expr2则返回NULL 关于忽略空字符串列的mysqlgroup_concat,我们在Stack

mysql - 困境: Cascade delete or Join delete

这不是一个具体的问题,更像是一个普遍的疑惑。当您必须对1:M关系中的多个表进行删除时,使用级联删除进行FK约束还是在删除语句中连接表更好。我有一个旧项目,对相关表有单独的删除语句,有几次有些语句没有执行,数据完整性受到损害。我必须在两者之间做出决定,所以我在考虑什么是更好的解决方案。还有一个选项可以创建存储过程或事务。所以我正在寻求意见或建议...? 最佳答案 我会说使用级联删除更安全。如果您决定使用联接,则必须记住每次从父表中删除任何内容时都使用它们;即使你有足够的纪律来做到这一点,你也无法确定你的同事或将来会支持你的软件的人。此