给定一个包含两个表X和Y的数据库,我有一个查询应该LEFTJOIN两个表的属性X.a1和Y.b1。我使用了以下查询:SELECTX.a1,X.a2,Y.b1,Y.b2FROMXLEFTJOINYON(X.a1=Y.b1)我认为这足以工作,即使Y当前是一个空表。但是,查询中断是因为表Y似乎是空的。有什么方法可以重新格式化此查询,以便即使Y是一个空表,LEFTJOIN也不会中断?或者我是否只需要始终确保表Y中有一些数据,即使它与表X中的任何内容都不匹配(因此LEFT加入). 最佳答案 由于您没有发布您的实际SQL,我只是在这里做出假设。
今天是星期五下午*,我的大脑停止工作了。通常是我在回答像这样愚蠢的SQL问题,抱歉!我试图通过将后者左连接到前者来获取一个表以及另一个表的列的最大值。SELECTjobs.*,MAX(notes.`timestamp`)AScomplete_dateFROMjobsLEFTJOINnotesON(jobs.id=notes.job_id)WHERE(jobs.status="complete"ORjobs.status="closed")AND(notes.type="complete"ORnotes.typeISNULL)GROUPBYjobs.idORDERBYcomplete_d
我想知道mysql_num_rows和mysql_affected_rows之间有什么区别。如何知道什么时候应该使用它。任何帮助和建议都将非常有用。例子是非常欢迎。 最佳答案 mysql_num_rows用于SELECT查询,mysql_affected_rows用于UPDATE和DELETE查询。mysql_num_rows告诉您有多少条记录从SELECT查询中返回mysql_affected_rows告诉您有多少行被UPDATEed或DELETEed 关于mysql-mysql_nu
我有两张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|+-----------+--------+--------+储蓄表+----------
请看简单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
我有这些表:通知内部身份cdateDATETIME...主题编号名字notice_themeid_noticeid_theme我想获取每个主题的最新通知。SELECTid_theme,n.idFROMnotice_themeLEFTJOIN(SELECTid,cdateFROMnoticeORDERBYcdateDESC)ASnONnotice_theme.id_notice=n.idGROUPBYid_theme结果不好。一个主意?谢谢。 最佳答案 有很多方法可以解决这个问题,但我习惯于这样做。需要一个额外的子查询来分别计算每个I
我需要创建一个View,其中包含一个名为row_num的列,其中将插入行号,就像普通表中的自动递增一样。假设我有这张普通table:|country|name|age|price|--------------------------------|US|john|22|20||France|Anne|10|15||Sweden|Alex|49|10|等等……我要创建的View是:|country|name|price|row_num|------------------------------------|US|john|20|1||France|Anne|10|2||Sweden|Al
我必须检查一个值(字符串)是否在我的数据库中。此刻我在做一个selecta.email,b.vuidfromusera,verteiler_userbwherea.email=\''.$email.'\'anda.kid='。$child。和b.vid='。$视频。'和a.uid=b.uid作为使用mysql_num_rows的查询,然后检查if>=1但是做一个limit为1的查询是不是更快??并检查一行是否回来了? 最佳答案 是的。运行limit1查询会更快。如果您所做的只是检查一行是否存在,为什么还要返回所有这些列呢?只需选择1
我这辈子都搞不清楚这个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非常感谢您的帮助。 最佳答案
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|+-