我有點卡住了,無法讓我的頭繞着這個MySQL。這裏是我的刪節表我想查詢:爲列的每個不同值選擇一行,MySQL
打印(printID,EVENTID,printTime)
銷售(saleID,EVENTID,saleTime)
我希望得到最後打印時間對於每個事件,然後選擇銷售時間大於上次打印時間的具有該eventID的銷售ID。
我已經嘗試了很多方法,但我無法想象它。請幫忙!
我有點卡住了,無法讓我的頭繞着這個MySQL。這裏是我的刪節表我想查詢:爲列的每個不同值選擇一行,MySQL
打印(printID,EVENTID,printTime)
銷售(saleID,EVENTID,saleTime)
我希望得到最後打印時間對於每個事件,然後選擇銷售時間大於上次打印時間的具有該eventID的銷售ID。
我已經嘗試了很多方法,但我無法想象它。請幫忙!
得到最後打印時間:
SELECT MAX(p.printTime), p.eventID FROM print p
你可以使用這個在子查詢中得到你需要的東西:
SELECT s.saleID, s.eventID
FROM sales s
INNER JOIN (SELECT MAX(p.printTime) AS lastPrintTime, p.eventID
FROM print p
GROUP BY p.eventID) print_time
WHERE print_time.eventID = s.eventID
AND s.saleTime > print_time.lastPrintTime
這是否幫助?
select s.saleID, s.eventID, s.saleTime, lp.LastPrintTime
from (
select eventID, max(printTime) as LastPrintTime
from print
group by eventID
) lp
inner join sales s on lp.eventID = s.eventID
and saleTime > lp.LastPrintTime
內部查詢:
SELECT * FROM sales AS s INNER JOIN
(
SELECT eventID, max(printTime) as maxPrintTime FROM [print] GROUP BY eID
) as p ON p.eventID = s.eventIDAND s.saleTime > maxPrintTime
哇,打我衝了30數秒 – 2010-06-15 14:16:55