簡體   English   中英

如何獲取一個查詢的結果並將該列表用作第二個表上另一個查詢的鍵?

[英]How to take the result of one query and use that list as a key for another query on a second table?

我的第一個查詢將返回用戶列表及其上次登錄時間:

username   |       last_login
john            2020-04-12 00:01:23 
amy             2020-04-10 12:13:42
brad            2020-04-11 11:21:00
max             2020-04-09 03:33:00

然后,我想搜索另一個記錄所有登錄及其持續時間的表,並返回每個用戶的最長登錄時間。

username    |    login_time          |      logout_time       |    duration
john          2020-04-12 00:01:23        2020-04-12 00:10:23          9
amy           2020-04-10 12:13:42        2020-04-10 12:43:42          30
brad          2020-04-11 11:21:00        2020-04-11 12:21:00          60
john          2020-04-10 08:21:00        2020-04-10 08:45:00          24
amy           2020-04-10 07:00:42        2020-04-10 07:03:42          3
max           2020-04-09 03:33:00        2020-04-09 03:40:00          7

查詢一:

select username, last_login from t1;

查詢 2 以獲取特定用戶的最長連勝記錄:

select duration from t2 where username='john' and duration=(select max(duration) from t2 where username='john')

我想要的結果是每個用戶,他們的最后一次登錄,以及最長的登錄時間:

username    |        last_login         |    longest_login
john             2020-04-12 00:01:23                24
amy              2020-04-10 12:13:42                30
brad             2020-04-11 11:21:00                60
max              2020-04-09 03:33:00                7

我不確定如何使用查詢 1 中找到的每個用戶名執行第二個查詢,然后組合結果。

您可以join和聚合:

select q1.username, q1.lastlogin, max(t.duration)
from firstquery q1 join
     othertable t
     on t.username = q1.username
group by q1.username, q1.lastlogin;

暫無
暫無

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

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