下面給出的是一個正在運行的查詢。我想用直接聯合查詢替換所有子查詢。請建議我一個解決方案。如何用聯合查詢替換子查詢?
SELECT
id,
startTime,
endTime,
drawingTime,
result,
wpAmount,
lpAmount,
prize,
cntWinTickets,
cntLoosTickets
FROM (SELECT
i.id AS id,
i.start_time AS startTime,
i.end_time AS endTime,
i.drawing_time AS drawingTime,
i.result AS result,
SUM(t.amount) AS wpAmount,
SUM(t.prize) AS prize,
COUNT(t.id) AS cntWinTickets
FROM issues i
LEFT JOIN orders o
ON o.issue_id = i.id
LEFT JOIN tickets t
ON t.order_id = o.id
AND t.has_prize = 1
GROUP BY i.id) AS A
INNER JOIN (SELECT
i.id AS lid,
SUM(t.amount) AS lpAmount,
COUNT(t.id) AS cntLoosTickets
FROM issues i
LEFT JOIN orders o
ON o.issue_id = i.id
LEFT JOIN tickets t
ON (t.order_id = o.id
AND (t.has_prize = 0
OR t.has_prize IS NULL))
GROUP BY i.id) AS B
ON A.id = B.lid
如果您創建** VIEW ** – 2013-04-26 09:23:32
,您可以發佈架構和所需的輸出,這可能是最好的選擇。以及一些示例數據,它會更好地解決 – 2013-04-26 09:25:24