我有一个或多或少复杂的 MySQL 选择查询,它基本上是从两个复杂表的连接中选择的:
SELECT *
FROM
( SELECT ProblemID
, 10*POWER(COUNT(ProblemID), 2) AS TagsSignifikanz
FROM
( SELECT ProblemID
FROM Problemtag
WHERE Tagtext = "Francois"
UNION
ALL
SELECT ProblemID
FROM Problemtag
WHERE Tagtext = "Hollande"
) AS TagsSignifikanzTable
GROUP
BY ProblemID
)
JOIN
( SELECT ProblemID
, SUM(Einzelsignifikanz) AS Titelsignifikanz
FROM
( SELECT ProblemID
, 1 AS Einzelsignifikanz
FROM Problem
WHERE Titel LIKE "%Francois%"
UNION
ALL
SELECT ProblemID
, 1 AS Einzelsignifikanz
FROM Problem
WHERE Titel
LIKE "%Hollande%"
UNION
ALL
SELECT ProblemID
, 4 AS Einzelsignifikanz
FROM Problem
WHERE Titel LIKE "%Francois Hollande%"
) AS TitelSignifikanzTable
GROUP
BY ProblemID
) AS TagsUndTitelSignifikanzTable
ON TagsSignifikanzQuery.ProblemID = TitelsignifikanzQuery.ProblemID;
我已经尝试了一段时间,但就是不知道应该在哪里插入派生表的名称。谁能帮帮我?提前致谢!
编辑 - 在 BK435 和 Drew 的帮助下,解决方案:(见第 7 行和最后 2 行)
SELECT * FROM (
SELECT ProblemID, 10*POWER(COUNT(ProblemID), 2) AS TagsSignifikanz FROM (
SELECT ProblemID FROM Problemtag WHERE Tagtext = "Francois"
UNION ALL
SELECT ProblemID FROM Problemtag WHERE Tagtext = "Hollande"
) AS TagsSignifikanzTable GROUP BY ProblemID
) As Alias1
JOIN (
SELECT ProblemID, SUM(Einzelsignifikanz) AS Titelsignifikanz FROM (
SELECT ProblemID, 1 AS Einzelsignifikanz FROM Problem WHERE Titel LIKE "%Francois%"
UNION ALL
SELECT ProblemID, 1 AS Einzelsignifikanz FROM Problem WHERE Titel LIKE "%Hollande%"
UNION ALL
SELECT ProblemID, 4 AS Einzelsignifikanz FROM Problem WHERE Titel LIKE "%Francois Hollande%"
) AS TitelSignifikanzTable GROUP BY ProblemID
) AS Alias2
ON Alias1.ProblemID = Alias2.ProblemID;