草庐IT

Subquery

全部标签

sql - MySQL:从内联子查询返回多列

我正在创建一个SQL语句,它将返回每月的销售摘要。摘要将列出日期、销售总数和销售总值的一些简单列。但是,除了这些列之外,我还想再添加3个列,这些列将按花费的金额列出最佳客户的月份。对于这些列,我需要某种内联子查询,可以返回它们的ID、名称和花费的金额。我目前的工作是使用内联SELECT语句,但是,根据我对如何实现这些的了解,每个内联语句只能返回一列和一行。为了在我的场景中解决这个问题,我当然可以创建3个单独的内联语句,但是,除了这看起来不切实际之外,它还会增加查询时间。SELECTDATE_FORMAT(OrderDate,'%M%Y')ASOrderMonth,COUNT(Order

sql - MySQL:从内联子查询返回多列

我正在创建一个SQL语句,它将返回每月的销售摘要。摘要将列出日期、销售总数和销售总值的一些简单列。但是,除了这些列之外,我还想再添加3个列,这些列将按花费的金额列出最佳客户的月份。对于这些列,我需要某种内联子查询,可以返回它们的ID、名称和花费的金额。我目前的工作是使用内联SELECT语句,但是,根据我对如何实现这些的了解,每个内联语句只能返回一列和一行。为了在我的场景中解决这个问题,我当然可以创建3个单独的内联语句,但是,除了这看起来不切实际之外,它还会增加查询时间。SELECTDATE_FORMAT(OrderDate,'%M%Y')ASOrderMonth,COUNT(Order

mysql - 删除 MySQL 中的重复行

我有一个包含以下字段的表格:id(Unique)url(Unique)titlecompanysite_id现在,我需要删除具有相同title、company和site_id的行。一种方法是使用以下SQL和脚本(PHP):SELECTtitle,site_id,location,id,count(*)FROMjobsGROUPBYsite_id,company,title,locationHAVINGcount(*)>1运行此查询后,我可以使用服务器端脚本删除重复项。但是,我想知道这是否只能使用SQL查询来完成。 最佳答案 一个非常

mysql - 删除 MySQL 中的重复行

我有一个包含以下字段的表格:id(Unique)url(Unique)titlecompanysite_id现在,我需要删除具有相同title、company和site_id的行。一种方法是使用以下SQL和脚本(PHP):SELECTtitle,site_id,location,id,count(*)FROMjobsGROUPBYsite_id,company,title,locationHAVINGcount(*)>1运行此查询后,我可以使用服务器端脚本删除重复项。但是,我想知道这是否只能使用SQL查询来完成。 最佳答案 一个非常

MySQL Insert with select subquery for one value

我有一个MySQL插入查询,它需要从另一个表中提取一个数据字段,我想知道这是否可以通过选择子查询来完成INSERTINTOresources(client_account_id,date_time,resource_name,resource_description_id,)VALUES({0},'{1}','{2}',{3},)我需要一个选择查询来从另一个表中获取resource_description_idSELECTresource_description_idFROMresource_descriptionsWHEREresource_description='{0}'我见过复

Semi-Join Subquery优化策略

Semi-JoinSubquery优化策略Semi-JoinSubquery(半连接子查询):对应IN或EXISTS子查询,仅需要检查"外表记录"在"子查询结果集"中是否存在匹配记录,不需要计算"子查询结果集"中记录匹配次数,也不需要返回"子查询结果集"中匹配记录内容在MariaDB(MySQL)中,常用优化Semi-Join(半连接)的策略有:FirstMatchTablePulloutSemi-joinMaterializationLooseScanDuplicateWeedoutFirstMatch策略当循环"外部查询结果集"的每条记录去"子查询中"确认"是否匹配"时,只需要找到第一条匹

go - 如何构造SELECT * FROM (<subquery>) ORDER BY column;形式的子查询?

我正在使用gorm与postgres数据库进行交互。我正在尝试ORDERBY使用DISTINCTON和thisquestion的查询记录如何做到这一点并不那么容易。所以我需要以的形式结束查询SELECT*FROM()ORDERBYcolumn;乍一看,我似乎需要使用db.QueryExpr()将我的查询转换为表达式并围绕它构建另一个查询。然而,似乎gorm没有直接指定FROM子句的简单方法。我尝试使用db.Model(expr)或db.Table(fmt.Sprint(expr))但模型似乎被完全忽略并且fmt.Sprint(expr)并没有完全按照我的想法返回。表达式包含一些私有(p

MySQL/SQL : Update with correlated subquery from the updated table itself

我有一个一般性问题,我将尝试用一个例子来解释。假设我有一个包含以下字段的表:“id”、“name”、“category”、“appearances”和“ratio”我的想法是我有几个项目,每个项目都与一个类别相关,并且“出现”了几次。比率字段应包括每个项目的出现次数占类别中项目出现总数的百分比。在伪代码中我需要的是以下内容:对于每个类别找到与之相关的项目的总出现次数。例如,可以使用(selectsum("appearances")fromtablegroupbycategory)对于每一项将比率值设置为项目的出现次数除以上述类别的总和现在我正尝试通过单个更新查询来实现此目的,但似乎无法

mysql - "subquery returns more than 1 row"错误解决方法

我有一个返回多行的查询,以及另一个我想将条件设置为来自这些多行的值之一的查询,所以基本上我希望子查询看起来像这样:select*fromtablewhereid=(multiplerowquery);其中多行查询返回多行。因此,如果这些行的值为1、2、3,那么我想将id设置为1或2或3。 最佳答案 =可以在子查询只返回1个值时使用。当子查询返回超过1个值时,您将不得不使用IN:select*fromtablewhereidIN(multiplerowquery);例如:SELECT*FROMStudentsWHEREMarks=(S

php - 如何在 Laravel 中执行此操作,子查询在哪里

如何在Laravel中进行此查询:SELECT`p`.`id`,`p`.`name`,`p`.`img`,`p`.`safe_name`,`p`.`sku`,`p`.`productstatusid`FROM`products`pWHERE`p`.`id`IN(SELECT`product_id`FROM`product_category`WHERE`category_id`IN('223','15'))AND`p`.`active`=1我也可以通过连接来做到这一点,但我需要这种格式来提高性能。 最佳答案 考虑这段代码:Produc