草庐IT

LEFT_BUTTON

全部标签

php - MySQL Left Join、Group By、Order By、Limit = 糟糕的性能

我目前正在开发一个应用程序,允许用户使用各种参数搜索文档数据库并返回一组分页结果。我正在用PHP/MySQL构建它,这不是我常用的开发平台,但到目前为止它已经很棒了。我遇到的问题是,为了返回完整的结果集,我必须在每个表上使用LEFTJOIN,这完全破坏了我的性能。开发数据库的人说我正在使用的查询将返回正确的结果,所以这就是我必须使用的。查询在下面,我绝不是SQL专家,需要一些帮助。我一直在想,将查询拆分成子查询可能会更好?以下是我当前的查询:SELECTd.title,d.deposition_id,d.folio_start,d.folio_end,pl.place_id,p.sur

mysql - Left Join 2 tables on 1 table

这一定很简单,但我想不出任何解决方案,也无法在某处找到答案...我得到了“用户”表和一张表'blogs'(user_id,blogpost)和一张表“消息”(user_id,消息)我想得到以下结果:User|count(blogs)|count(messages)Jim|0|3Tom|2|3Tim|0|1Foo|2|0所以我做的是:SELECTu.id,count(b.id),count(m.id)FROM`users`uLEFTJOINblogsbONb.user_id=u.idLEFTJOINmessagesmONm.user_id=u.idGROUPBYu.id这显然是行不通的,

php - mysql left join耗时太长

我有以下SQL查询:SELECTupd.*,usr.usernameAS`username`,usr.profile_pictureAS`profile_picture`FROMupdatesASupdLEFTJOINsubscribersASsubONupd.uid=sub.suidLEFTJOINusersASusrONupd.uid=usr.uidWHEREupd.deleted='0'&&(upd.uid='118697835834'||sub.uid='118697835834')GROUPBYupd.idORDERBYupd.dateDESCLIMIT0,15我从哪里获取所

MySQL SELECT + LEFT JOIN + IF 查询

我有一个名为类别的简单数据库表:category.idcategory.namecategory.lang1'apple''en'1'manzana''es'1'''de'1'''it'变量:$default_lang='en';$current_lang='it';我想根据$current_lang进行查询,返回category_name字段,但是如果category.name为空,那么应该像这样使用$default_lang中的category.name:SELECT*FROMcat_listLEFTJOINcategoryONcal_list.id=category.idANDI

右表中的 MySQL Left Join 和 NULL 列

我需要加入以下两个MySQL表:CREATETABLE`tbl_L`(`datetime`datetimeNOTNULL,`value`decimal(14,8)DEFAULTNULL,`series_id`int(11)NOTNULL,PRIMARYKEY(`series_id`,`datetime`))ENGINE=InnoDBDEFAULTCHARSET=utf8CREATETABLE`tbl_R`(`datetime`datetimeNOTNULL,`value`decimal(14,8)DEFAULTNULL,`series_id`int(11)NOTNULL,PRIMARY

mysql SELECT FROM 两个表和 LEFT JOIN

我在从两个表中选择并左联接到第三个表时遇到问题。查询:SELECTc.idAScurrency,u.user,us.enabledAScurrencyFROMusersASu,currencyAScLEFTJOINusers_settingsASusON(c.id=us.currency,u.user=us.user)WHEREc.off=0ANDc.disabled=0ANDc.status=1错误:#1054-Unknowncolumn'u.user'in'fieldlist'我需要用户和货币的笛卡尔积。用户:id、登录名、邮箱、密码http://en.wikipedia.org/

mysql - 根据条件查询 LEFT JOIN

假设我有一张客户表和一张“更多信息”表。我查询客户列表及其附加信息(不是每个客户都有条目在这里,所以我们使用LEFTJOIN):SELECTid,name,more_information.dataFROMclientsLEFTJOINmore_informationONmore_information.client_id=clients.id现在我的问题:我只想为满足条件的客户查询“更多信息”,例如在过去30天内注册,对于其他人,我只想为more_information.data设置null所以类似(语法不正确)SELECTid,name,more_information.dataF

mysql - 为什么这个 LEFT JOIN 消除了另一个表中没有任何内容的记录?

我有一个MySQL左连接问题。我要加入三个表。一个人表:CREATETABLEperson(idINTNOTNULLAUTO_INCREMENT,typeENUM('student','staff','guardian')NOTNULL,first_nameCHAR(30)NOTNULL,last_nameCHAR(30)NOTNULL,genderENUM('m','f')NOTNULL,dobVARCHAR(30)NOTNULL,PRIMARYKEY(id));一个学生表:CREATETABLEstudent(idINTNOTNULLAUTO_INCREMENT,person_id

sql - Left Join 从左边开始不匹配 Where 子句的所有行

我有以下问题:我有一个帐户表和一个帐户表条目。帐户ID帐户名entry_idaccount_idfkentry_dateentry_amount现在我想查询给定时间段内所有帐户的所有条目。例如。我想要所有帐户从2008年10月到2009年10月的所有条目。如果此帐户根本没有条目,或者此帐户只有其他时间段的条目,我也希望该帐户被退回。我当前的查询有效,如果根本没有条目,或者这个帐户的这个时间段有条目。但是-它忽略了只有其他时间段的条目的帐户。SELECT*FROMAccountaLEFTJOINEntrieseONe.account_idfk=a.account_idWHEREe.ent

sql - MySQL: LEFT JOIN.. 从表 1 中选择全部,即使表 2 中没有?

我正在加入几张table进行选择如果在第2、3、4个表中没有任何匹配项,只要第一个表有匹配项,我仍然想提取结果。我以为LEFTJOIN做到了这一点,但事实并非如此。这是完整的查询:SELECTcart_product.*,prod_drop_products.prod_drop_product_name,everlon_sheet.*,cart_product.product_idASproduct_idFROMcart_productLEFTJOINeverlon_sheetONcart_product.product_id=everlon_sheet.product_idLEFTJ