草庐IT

sub_left

全部标签

mysql - 同一张表上的多个 Left Join

我有两张table。第一张表=>成员{member_id,name,active}第二张表=>储蓄{savings_id,member_id,month,year,amount,type,paid}成员表+-----------+--------+--------+|member_id|name|active|+-----------+--------+--------+|105|Andri|1||106|Steve|1||110|Soraya|1||111|Eva|1||112|Sonia|1|+-----------+--------+--------+储蓄表+----------

mysql - 为什么这个简单的 Left Join 会从不匹配的行中返回数据?

请看简单http://sqlfiddle.com/#!9/e853f/1针对运行中的这个问题。我指的是MySQLver5.6.12-log据我了解,对于最右侧数据集中左侧数据集中的键在右侧数据集中不存在的列,左联接返回NULL。但是,即使右侧不存在左侧键,我也会从右侧获取返回的数据。谁能解释一下这是怎么回事?SQLfiddle创建:一个有6行的表,每行只包含一个整数ID第二个表有3行,其中包含一些整数ID加上两个更多INT字段基于第二个表的View,该表返回3行,其中包含整数ID和一个从其他两个INT字段派生的文本字段(很明显,View中的3个ID对应6行表中的部分ID。)SQLSEL

mysql - SQL join left 获取 MAX(date)

我有这些表:通知内部身份cdateDATETIME...主题编号名字notice_themeid_noticeid_theme我想获取每个主题的最新通知。SELECTid_theme,n.idFROMnotice_themeLEFTJOIN(SELECTid,cdateFROMnoticeORDERBYcdateDESC)ASnONnotice_theme.id_notice=n.idGROUPBYid_theme结果不好。一个主意?谢谢。 最佳答案 有很多方法可以解决这个问题,但我习惯于这样做。需要一个额外的子查询来分别计算每个I

php - 带有 LEFT JOIN 的嵌套 SELECT 语句

我这辈子都搞不清楚这个SQL语句有什么问题,为什么它没有产生任何结果。如果我去掉LEFTJOIN是可行的,那么它有什么问题吗?SELECTb.id,r.avg_ratingFROMitemsASbLEFTJOIN(SELECTavg(rating)asavg_ratingFROMratingsGROUPBYitem_id)ASrONb.id=r.item_idWHEREb.creator=".$user_id."ANDb.active=1ANDb.deleted=0ORDERBYb.orderASC,b.addedDESC非常感谢您的帮助。 最佳答案

mysql - 来自 GROUP_BY 的两个 LEFT JOIN 的 GROUP_CONCAT 的奇怪重复行为

Here是我所有表的结构和查询(请关注最后查询,附在下面)。正如您在fiddle中看到的,这是当前输出:+---------+-----------+-------+------------+--------------+|user_id|user_name|score|reputation|top_two_tags|+---------+-----------+-------+------------+--------------+|1|Jack|0|18|css,mysql||4|James|1|5|html||2|Peter|0|0|null||3|Ali|0|0|null|+-

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...

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 - MySQL 的 H2 中的 DATE_SUB 和 DATE_ADD

我使用MySQL作为我的数据库,使用H2进行测试。我也在使用playframework2.3.x和Scala,但我认为这对问题的目的无关紧要。H2与我在查询中使用的某些函数有冲突SELECT*FROMsubscriptionsWHEREactive_until>=(DATE_SUB(CURDATE(),INTERVAL3DAY))ANDactive_until导致问题的函数是DATE_SUB和DATE_ADD。是否有一种变通方法可以使它工作或更改查询而不破坏mysql的查询? 最佳答案 终于解决了。我必须将DATE_ADD更改为TI

使用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 - 使用 DATE_SUB 选择小于 5 分钟的行

我有一个每分钟收到数百个请求的表。我遇到的问题是我需要一种方法来只选择过去5分钟内插入的行。我正在尝试这个:SELECTcount(id)ascount,field1,field2FROMtableWHEREtimestamp>DATE_SUB(NOW(),INTERVAL5MINUTE)ORDERBYtimestampDESC我的问题是它返回了70k+个结果并且还在增加。我不确定我做错了什么,但我很乐意在这方面得到一些帮助。此外,如果有一种方法可以按分钟对它们进行分组,使其看起来像:|count|field1|field2|----------------------------我很