簡體   English   中英

是否可以在同一查詢中使用查詢結果

[英]is it possible to use result of query in same query

例如我有這個表事件:

用戶身份 事件類型 date_of_event
用戶A X 01-01-2000
用戶A 01-01-2005
用戶B X 01-01-2000
用戶B 01-01-2100

我想 select 在next 2 years AFTER the date of event_type X select all users擁有event_type = Xno event_type Y的用戶。 所以在上面的表格中就是 userA 和 userB

我知道我可以在 2 個 mysql 查詢中做到這一點,但只是想知道是否有辦法在 1 個查詢中做到這一點

你可以通過自加入來做到這一點。

SELECT DISTINCT a.user_id
FROM yourTable AS a
LEFT JOIN yourTable AS B 
    ON a.user_id = b.user_id AND b.date_of_event < DATE_ADD(a.date_of_event, INTERVAL 2 YEAR)
    AND b.event_type = 'Y'
WHERE a.event_type = 'X'
select t.user_id
      ,t.event_type
      ,t.date_of_event

from   t join t t2 on t.user_id = t2.user_id 
         and  t.event_type <> t2.event_type
where    t.event_type = 'x'
         and          (t2.date_of_event < t.date_of_event
         or   datediff(t2.date_of_event,  t.date_of_event) > 730)
       
用戶身份 事件類型 date_of_event
用戶A X 2000-01-01
用戶B X 2000-01-01

小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM