草庐IT

full-outer-join

全部标签

MySQL 外连接替代

我正在开发一个游戏库存管理系统,我想在一个表中显示所有者的补货愿望list和每个游戏的客户购买预订数。我写了一个我认为有用的查询,但后来我注意到它实际上忽略了任何有保留但最初不在补货愿望list中的游戏。查询如下:SELECTrwl.*,g.gameName,coalesce(payYes,0)payYes,coalesce(payNo,0)payNoFROMRestockWishListASrwl,GamesASgLEFTJOIN(SELECTgameID,COUNT(if(prepaid='Yes',1,NULL))payYes,COUNT(if(prepaid='No',1,NU

mysql - 添加了 AND 子句的 Django LEFT JOIN 查询 : possible?

我正在尝试执行一个DjangoORM查询,其中包含LEFTJOINON(condition)AND(condition)。但我不知道如何执行额外的AND条件,将JOIN抛出很长很长的路。添加具有第二个条件的Django过滤器没有帮助-它最终以WHERE子句结束,而不是JOIN中的AND子句。是否可以在ORM中加入ONconditionANDcondition,还是应该只使用SQL语句?如果可能的话,你是怎么做到的?就其值(value)而言,这是我试图转换为Django的SQL查询:SELECT`editions_edition`.`name`ASedition,etcFROM`edit

php - inner join中的MySQL查询错误

我遇到了一个错误,我想从成员表中获取用户名,从上传目录中获取图像路径,我的图像是自动增量的。INSERTINTOprofileimageSET`imageid`='',`username`='username',`imagepath`='$target_file'innerjoinmemberonprofileimage.username=member.username;出现以下错误1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsynt

sql - MySQL 中特定表的 JOIN 中的 LIMIT 1?

我想向用户显示上次事件。(你可以阅读我的lastquestion了解更多信息)我需要做一个大的JOIN(6个以上的表)。我只需要为每个ID获取一行,但有些表的每个ID包含不止一行。例如,一篇文章ID在“投票”表中只能有一行,但在“图片”表中可以有很多行,因为每篇文章可以有不止一张图片,但我只想要一张图片。所以我需要做这样的事情(当然这段代码是错误的):SELECTtable1.item,table2.item,table3.item,table4.item,table5.itemFROMtable1LEFTOUTERJOIN...ON...AND...LEFTOUTERJOIN...O

mysql - JOIN 3 tables and (LIMIT 2 rows ORDER BY time DESC)

我知道这个问题已经被问过很多次了,但我在执行它时遇到了困难。我做了一个简化的例子,所以它很容易重现。我想连接3个表,但在最后一个表上我想限制为2行DESCCREATETABLE`cars`(`car_id`int(11)NOTNULLAUTO_INCREMENT,`plate`varchar(10)NOTNULL,`km`int(11)NOTNULL,`status`tinyint(1)NOTNULL,PRIMARYKEY(`car_id`))ENGINE=MyISAMDEFAULTCHARSET=latin1AUTO_INCREMENT=6;INSERTINTO`cars`(`car

mysql - 如何使 JOINS 更快?

我从这个查询开始:SELECTDISTINCTspentits.*FROM`spentits`WHERE(spentits.user_idIN(SELECTfollowing_idFROM`follows`WHERE`follows`.`follower_id`='44'AND`follows`.`accepted`=1)ORspentits.user_id='44')ORDERBYidDESCLIMIT15OFFSET0执行此查询需要10毫秒。但是一旦我添加了一个简单的加入:SELECTDISTINCTspentits.*FROM`spentits`LEFTJOINwishlist_

mysql - 在带有 OR 条件的 LEFT JOIN 中使用索引

考虑以下查询:SELECT*FROMtable1LEFTJOINtable2ONtable2.some_primary_key=table1.some_primary_keyLEFTJOINtable3ONtable3.some_primary_key=table1.some_primary_keyOR--thisistheissuetable3.column_with_index=table2.column_with_index当我检查EXPLAIN时,它显示索引未用于table3连接(但索引显示在“possible_keys”中)。类型:“全部”。根据manual:Jointype

mysql - 使用 LEFT JOIN 在 MySQL 中查找孤立记录

我正在尝试使用LEFTJOINS查找不同的孤立menu_item记录,然后检查NULL值。下面的查询返回的结果实际上不是孤立的。mitem_id是menu_item表的主键和price_info表的外键。pinfo_id是price_info表和外键orderdetails表的主键。SELECTDISTINCTmi.mitem_id,descrFROMmenu_itemmiLEFTJOINprice_infopiONpi.menu_item=mi.mitem_idLEFTJOINorderdetailsodONod.price_info=pi.pinfo_idWHEREod.detai

mysql left join where with an or,扫描整个表(无索引)

我尝试了几种不同的方法,但结果很糟糕。核心问题是成员搜索正在扫描所有成员,忽略索引。主要原因(据我所知)是这个片段(Member.priv_profile=3ORMyFriend.status_idIN(1,2))单独使用该OR片段的任一侧都可以正常工作,获取索引,扫描几行,因此性能良好。我真的不想将此查询拆分为2并执行UNION,但我们可能不得不这样做,除非有人能想出一个好方法使此选择与重要的OR一起“工作”。mysql>ALTERTABLE`members`ADDINDEXA(is_active,last_name,first_name);QueryOK,140019rowsaff

mysql - 避免使用 INNER JOIN + ORDER BY 进行文件排序

我一直在阅读其他帖子,但未能解决我的问题。使用DESC命令查询速度慢了x20倍,我必须改进它。这是查询:SELECTposts.post_id,posts.post_b_id,posts.post_title,posts.post_cont,posts.thumb,posts.post_user,boards.board_title_l,boards.board_titleFROMpostsINNERJOINfollowONposts.post_b_id=follow.board_idINNERJOINboardsONposts.post_b_id=boards.board_idWHE