【问题标题】:mySQL Nested Query SyntaxmySQL 嵌套查询语法
【发布时间】:2020-06-02 19:36:19
【问题描述】:

我正在尝试使用嵌套查询方法为 mySQL 数据库构建查询时查询,但未能正确生成输出。我能够将我的表导入 Microsoft Access 并构建 Query1,然后在 Query1 上构建 Query2 以获得我正在寻找的正确输出,所以我觉得我已经接近了,我只是无法获得正确的语法来获取我正在寻找使用 mySQL 查询方法的输出。

Query1,这是来自 Access 的 Query1 的 SQL 语句。

SELECT DISTINCT MediaBuys.DistrictID, MediaBuys.SpenderID, MediaBuys.PG, MediaBuys.SupportType, MediaBuys.PriSupportType 
FROM MediaBuys 
WHERE MediaBuys.PG ="P";

Query2,如果我如上所述在 Access 中构建了 Query1,并且我在 Access 中将这个 SQL 语句作为一个单独的查询运行,我可以生成我正在寻找的输出。

SELECT Query1.DistrictID, Query1.SpenderID, Query1.PG, Query1.SupportType, Query1.PriSupportType, Count(Query1.SupportType) AS CountOfSupportType 
FROM Query1 INNER JOIN Query1 AS Query1_1 ON Query1.PG = Query1_1.PG AND Query1.SpenderID = Query1_1.SpenderID AND Query1.DistrictID = Query1_1.DistrictID 
GROUP BY Query1.DistrictID, Query1.SpenderID, Query1.PG, Query1.SupportType, Query1.PriSupportType 
HAVING Count(Query1.SupportType) > 1;

我希望能够从 mySQL 中的查询产生相同的输出。由于我有这两个查询的 SQL 语句,我觉得这应该是可行的,我尝试以多种不同的方式构建嵌套查询,但每次尝试都失败,看来我无法组合正确的语法。我收到的最常见错误是“错误代码:1146。表 'Query1' 不存在”。

这在 mySQL 中是否可行,如果可以,任何人都可以帮助我使用正确的语法吗?

【问题讨论】:

标签: mysql


【解决方案1】:

就像你在Access中创建查询Query1一样,在MySql中创建一个视图View1

CREATE VIEW View1 AS
SELECT DISTINCT DistrictID, SpenderID, PG, SupportType, PriSupportType 
FROM MediaBuys 
WHERE PG ='P';

您的查询将是:

SELECT 
  View1.DistrictID, View1.SpenderID, View1.PG, View1.SupportType, View1.PriSupportType,
  Count(View1.SupportType) AS CountOfSupportType 
FROM View1 INNER JOIN View1 AS View1_1 
ON View1.PG = View1_1.PG AND View1.SpenderID = View1_1.SpenderID 
AND View1.DistrictID = View1_1.DistrictID 
GROUP BY View1.DistrictID, View1.SpenderID, View1.PG, View1.SupportType, View1.PriSupportType 
HAVING Count(View1.SupportType) > 1;

【讨论】:

  • 这正是我一直在寻找的,非常感谢您抽出时间帮助我解决我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
相关资源
最近更新 更多