草庐IT

LEFT-JOIN

全部标签

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 - 你如何使用 JOIN 而没有 ID 进行删除?

以下查询生成我要删除的记录列表...SELECT*FROM`orderitems`asoiLEFTJOIN`orders`asoON(o.`orderid`=oi.`orderid`)WHEREo.`date`='2012-10-05'ANDo.`status`='init';不幸的是,这些表的设计没有id字段。我看过其他带有连接的删除,但都使用id字段。这不起作用:DELETEFROM`orderitems`asoiLEFTJOIN`orders`asoON(o.`orderid`=oi.`orderid`)WHEREo.`date`='2012-10-05'ANDo.`status

mysql - 使用 JOIN 选择在第二个表上有 2 个条件的行

我有2个表:goods和cats_goods(关系表)。商品:id,name。Cats_goods:good_id,cat_id。如何只选择cat_id=4和cat_id=24的goods?尝试过:SELECTDISTINCT*FROM`goods`AS`g`JOIN`cats_goods`AS`cg`ON(`g`.`id`=`cg`.`good_id`)WHERE(`cg`.`cat_id`=24AND`cg`.`cat_id`=4)查询给出0个结果!更新:对于每个good,在cats_goods中有1行cat_id=4,在cats_goods中有一行cat_id=24。我只需要选择

mysql - 为什么递归查询比 join 和 group by 更快?

我正在使用MySQL服务器5.5并具有下一个数据库结构---------------------------------------------------------Table`mydb`.`User`-------------------------------------------------------CREATETABLEIFNOTEXISTS`mydb`.`User`(`id`INTNOTNULL,`Name`VARCHAR(45)NOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDB;--------------------------------

mysql - 使用连接表中的两个计数编写 JOIN 查询

我已经花了几个小时来解决这个问题,但我无法让计数正常工作。希望有人能帮忙?!我有一个项目表和任务表,链接在project_id上。我可以通过以下查询获取project_id、project_name和status_id:SELECTa.project_id,a.project_name,b.status_idFROMproject_listasaINNERJOINtask_listasbONa.project_id=b.project_id我想为每个项目选择一条记录,并根据status_id添加两个计数字段。在伪代码中:SELECTa.project_id,a.project_name

在左连接中使用 group by 的 MySQL 子查询 - 优化

MySQL似乎无法优化带有GROUPBY子查询的选择,结果执行时间很长。对于这种常见场景,必须有已知的优化。假设我们正在尝试从数据库中返回所有订单,并带有一个标志,指示它是否是客户的第一个订单。CREATETABLEorders(orderint,customerint,datedate);检索客户的第一批订单非常快。SELECTcustomer,min(order)asfirst_orderFROMordersGROUPBYcustomer;但是,一旦我们使用子查询将其与完整订单集连接起来,它就会变得非常慢SELECTorder,first_orderFROMordersLEFTJO

连接 N-1 和 N-N 的 mySQL 嵌套

我正在尝试连接4个表,两个1-N表和一个通过N-N表。奇怪的是,mySql似乎不喜欢我的语法之一。有人知道这是由于myOwn限制还是mySql造成的吗?这行不通:SELECT*FROMtableOnet1JOINtableTwot2LEFTOUTERJOINN_N_tableThreet3JOINtableFourt4ONt4.id=t3.fk_tableFourONt2.id=t3.fk_tableTwoONt2.id=t1.fk_tableTwo虽然这确实有效SELECT*FROMtableOnet1,tableTwot2LEFTOUTERJOINN_N_tableThreet3J

右表中的 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查询左连接显示一个表中的所有数据

SELECTA.CODE,B.NOTE,C.NUMBERFROM(ALEFTJOINBONA.CODE=B.CODELEFTJOINCONA.CODE=C.NUMBER)WHEREC.ID=B.ID需要显示3个表的一些结果,但我的结果显示表B中的所有数据,如果表C中的数据不是真实的。TableA.code123TableB.code123TableB.notepippopaperinoplutoTableC.number1理想情况下应该有一个结果显示11pippo但在结果中显示:11pippo11paperino11pluto如何获取真实数据? 最佳答案

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/