是否可以在使用MySQL的子查询中引用外部查询?我知道在 某些 情况下这是可能的:
SELECT *
FROM table t1
WHERE t1.date = (
SELECT MAX(date)
FROM table t2
WHERE t2.id = t1.id
);
但是我想知道这样的事情是否可以工作:
SELECT u.username, c._postCount
FROM User u
INNER JOIN (
SELECT p.user, COUNT(*) AS _postCount
FROM Posting p
--# This is the reference I would need:
WHERE p.user = u.id
GROUP BY p.user
) c ON c.user = u.id
WHERE u.joinDate < '2009-10-10';
我知道我可以使用GROUP BY
或通过将外部WHERE
子句拉入子查询来实现相同目的,但是我需要这样做来自动生成SQL,并且由于各种其他原因,不能使用任何一种替代方法。
更新 :对不起,这个问题引起了一些混乱:第一个查询只是一个可行的示例,以演示我 不需要的 东西。
更新2 :我需要两个u.id = p.user比较:第一个比较在‘2009-10-10’之前加入的用户,而另一个是正确关联表行的连接条件。
我认为这行不通,因为您将派生表“ c”引用为联接的一部分。
但是,您可以只取出WHERE p.user = u.id
while并GROUP BY p.user
在派生表中替换为,因为ON c.user = u.id
会产生相同的效果。
问题内容: 我有以下查询,该查询通常可以正常工作,并且应该返回涵盖定义时间范围的所有行(如果没有绝对匹配,则采用最接近的前一行和后一行-在http://www.orafaq.com/node/1834中概述) 但是希望通过引用外部选择来减少两个表的子选择,但是显然它不喜欢它 有没有一种方法可以使查询不选择三个表? 问题答案: 您可以通过联接执行以下操作: 我不是MySQL专家,因此如果需要一些语法
我有两个联合查询,如下所示: 现在,我想在另一个查询中使用此联合。 当我运行它时,我得到ORA-00904:"P"."CUSTOMER_NO":无效的标识符。我需要将h1.customer_no加入到外部查询customer_no。 我看到过一些带有rank的查询,但我不太明白。如何将内部查询与外部查询连接起来? 提前感谢。
我必须计算ARPU(收入/#用户),但我得到了这个错误: 子查询使用外部查询第7行的未分组列“usage_records.date”:WHERE created_at<=date_trunc('day',usage_records.d...^) null
问题内容: 如何在按部分分组的查询中使用子查询? 我使用SQL Server 2008 R2和Delphi 2010 我收到此错误: 像这个查询: 按t1.sen分组 问题答案: 这是真实的方式
问题内容: 我正在使用嵌套集模型在iPhone上的本地SQLite数据库中存储较大的数据层次结构。我从他们的网站上阅读了MySQL技术文章,了解如何执行此操作,但是他们建议的查询(以及我需要的查询)之一似乎不适用于SQLite,并且我不确定如何解决它。 SQLite报告不是列,我认为这是因为其子查询实现不完整。有人对如何解决此限制有任何想法吗? 查询的目的是获取给定父节点的所有直接子代。 问题答案
问题内容: 我正在尝试使用UPDATE更新表中一堆行中的列值。问题是我需要使用子查询来导出此列的值,并且它依赖于同一张表。这是查询: 通常,如果老师和学生在两个不同的表中,则mysql不会抱怨。但是由于它们都使用同一个表,因此mysql会发出此错误: 错误1093(HY000):您无法在FROM子句中指定目标表“学生”进行更新 有什么办法可以强制mysql执行更新?我100%肯定from子句不会受