草庐IT

Multi-join

全部标签

mysql - 在 MYSQL 中执行 LEFT OUTER JOIN 时插入零而不是 NULL

有没有办法在两个表上执行LEFTOUTERJOIN时插入一个零而不是NULL?假设我有这样的查询:SELECT*FROM(SELECTuIDfromClass)T1LEFTOUTERJOIN(SELECTpIDfromUniversity)T2ONT1.uID=T2.pIDCASEWHENT1.uIDISNULLTHEN0ELSET1.uIDENDASuID`如果我错了请指正 最佳答案 使用ISNULL(field,0)如果字段为NULL,这将插入零 关于mysql-在MYSQL中执行L

mysql - JOIN 和 GROUP_CONCAT 三张表

我有三个表:users:sports:user_sports:id|nameid|nameid_user|id_sport|pref---+-----------+--------------------+----------+------1|Peter1|Tennis1|1|02|Alice2|Football1|2|13|Bob3|Basketball2|3|03|1|23|3|13|2|0表user_sports将users和sports链接到一个优先顺序(pref)。我需要做一个返回这个的查询:id|name|sport_ids|sport_names---+-------+-

mysql - 从 LEFT JOIN 设置 NULL 列的默认值并使用 WHERE 进行过滤

我有一个项目表,还有一个单独的表,其中包含每个项目的单独购买。并非每件商品都已购买。我正在选择购买计数,并使用类似于以下的语句将其与项目表连接起来:SELECTitems.name,purchases_countFROM`items`LEFTJOIN(SELECTsales.item_name,SUM(unit_sales)ASpurchases_countFROMsalesGROUPBYitem_name)salesONsales.item_name=items.uid这导致数据类似于:+------+-----------------+|name|purchases_count||

mysql - Left JOIN 更快还是 Inner Join 更快?

所以...哪个更快(NULl值不是问题),并且已编入索引。SELECT*FROMAJOINBbONb.id=a.idJOINCcONc.id=b.idWHEREA.id='12345'使用左连接:SELECT*FROMALEFTJOINBONB.id=A.bidLEFTJOINCONC.id=B.cidWHEREA.id='12345'这是实际的查询在这里..都返回相同的结果Query(0.2693sec):EXPLAINEXTENDEDSELECT*FROMfriend_events,zcms_users,user_events,EVENTSWHEREfriend_events.us

php - mysqli_multi_query 不适用于 mysql 条件注释查询

我在使用mysql条件注释查询时遇到问题,其中报告的错误没有语法错误。它适用于至少一个查询实际执行有条件的情况。我正在使用php5.6.24和mysql5.5.52-cll示例1(成功):supports_full_text值如预期的那样为0。示例2(失败):收到的错误:Array([0]=>Array([errno]=>1064[sqlstate]=>42000[error]=>YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtous

sql - MySQL:删除 Left Join 上的重复列,3 个表

我有一个表将3个外键用于其他表。当我执行左连接时,我得到了重复的列。MySQL表示USING语法将减少重复列,但没有多个键的示例。给定:mysql>describerecipes;+------------------+------------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+------------------+------------------+------+-----+---------+-------+|ID_Recipe|int(11)|NO|PRI|NULL|

mysql - MULTI DELETE 中的未知表

此查询在MySQL5.1.57中给我一个错误,但在5.1.53中有效:DELETEfFROMtable1ASfJOINtable2ASdsyJOINtable3ASdsJOINtable4ASdpJOINtable5ASdgWHEREdsy.f1=f.f1ANDds.f2=f.f2ANDdp.f3=f.f3ANDdg.f4=f.f4ANDdsy.school_year=2011ANDds.id=29620ANDdp.id=14120ANDdg.grade_level=5;错误是:MULTIDELETE中的未知表'f'谢谢!编辑:实际上这个查询有效,问题是我使用模式名称来声明我的表,如s

MYSQL - 将 SUM 与 JOIN 结合使用

好的,所以我有4个表。users表,包含列id和name。groups表,包含列id、name和owner。items表,包含列group和content。content表,包含id、name和duration列。每个用户可以有多个组。每个组中可以包含多个项目。每个项目代表一个内容。我希望能够列出所有组,以及该组内每段内容的所有持续时间的总和。我一直在尝试的是:selectgroups.id,groups.name,users.name,sum(content.duration)asdurationfromgroupsjoinusersongroups.owner=users.idjo

mysql - INNER JOIN 从表 2 中选择列

如何使用INNERJOIN从第二个和第三个表中选择某些列SELECT*FROM1_packages_pluASpINNERJOIN1_stockassONp.fk_products_id=s.fk_products_idANDbranch=1INNERJOIN1_productsASjONp.fk_products_id=j.idWHEREfk_packages_id=54;在表1_stock中,我只想返回stock-repair列的值,而在1_products中,我只需要make,模型列 最佳答案 SELECTp.*--Allco

在 LEFT JOIN 中使用变量作为表名的 MYSQL 查询

SELECTvar1,var2,var3,table_nameFROMtable1LEFTJOINtable_nameonvar3=table_name.id这意味着我想根据table1中table_name的值动态地左连接表,因为var3是从那里获取的。但是上面的查询结果是tabletable_namedoesnotexist我的mysql限制错误? 最佳答案 表名和列名在SQL查询中不能是动态的。因此,您必须以编程方式应用您的逻辑,使用2个查询或存储过程,请参见此处的示例:http://forums.mysql.com/read