[英]How to construct MySQL view from query with UNIONs and sub-SELECTs
我正在嘗試構建一個看起來很普通的報告,向我展示我玩過的彩票中的數字與所宣布的中獎彩票中的一個或多個相匹配。 我有以下查詢,該查詢恰好可以從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個最近繪制的數字。
好吧,一個快速的mysql create view
谷歌將我帶到http://dev.mysql.com/doc/refman/5.0/en/create-view.html ,它給了我這樣的語法(只需復制/粘貼您的SELECT
語句逐字):
CREATE VIEW foo AS
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.