【发布时间】:2015-03-10 18:36:04
【问题描述】:
我正在尝试构建一个看似普通的报告,以显示我玩过的哪些彩票的号码与已公布的一个或多个中奖抽奖匹配。我有下面的查询,它完全符合我在 SQL 提示符下的要求。但是,我需要将其表示为 VIEW,以便我的单个 ODBC 连接可以访问两个单独的数据库,但我无法弄清楚如何在不需要 UNION 的情况下设置单独的子视图。谁能告诉我一个更好的方法?感谢指导。
SELECT record_id, GROUP_CONCAT(num ORDER BY num) nums
FROM (
SELECT record_id, n1 num FROM LA.tickets UNION
SELECT record_id, n2 num FROM LA.tickets UNION
SELECT record_id, n3 num FROM LA.tickets UNION
SELECT record_id, n4 num FROM LA.tickets UNION
SELECT record_id, n5 num FROM LA.tickets
) foo
WHERE num = ANY ((SELECT n1 n FROM L.draw WHERE record_id = 1) UNION
(SELECT n2 n FROM L.draw WHERE record_id = 1) UNION
(SELECT n3 n FROM L.draw WHERE record_id = 1) UNION
(SELECT n4 n FROM L.draw WHERE record_id = 1) UNION
(SELECT n5 n FROM L.draw WHERE record_id = 1)
)
GROUP BY record_id
HAVING count(*) >= 1;
(在这种情况下,“抽奖”表的第 1 条记录包含最近抽出的 5 个号码。
【问题讨论】:
-
为什么不能在此之前添加
CREATE VIEW的东西? -
这正是我的问题——我不知道该怎么做。我需要一个 VIEW 来提供与 SELECT 查询相同的结果,但我不确定如何将其分解为组件。 (对你的问题的简短回答是我现在特别厚。)