我在mysql中2個表 - 用戶(USER_ID,FIRST_NAME ....)和login_history(USER_ID,login_time)加入MySQL中的兩個表 - 一對多的關係
每次用戶在包廂,系統記錄在login_history中的時間。
我想運行一個查詢來從用戶表中獲取所有字段,並從login_history獲取最新登錄時間。任何人都可以幫忙嗎?
我在mysql中2個表 - 用戶(USER_ID,FIRST_NAME ....)和login_history(USER_ID,login_time)加入MySQL中的兩個表 - 一對多的關係
每次用戶在包廂,系統記錄在login_history中的時間。
我想運行一個查詢來從用戶表中獲取所有字段,並從login_history獲取最新登錄時間。任何人都可以幫忙嗎?
SELECT t1.col1
,t1.col2
,[...repeat for all columns in User table]
,max(t2.login_time)
FROM user t1
INNER JOIN login_history t2 ON t1.user_id = t2.user_id
GROUP BY t1.col1
,t1.col2
,[..repeat for all columns in User table]
這應該工作,假設login_time
存儲在一個健全的數據類型和/或格式。
你必須使用則加入:
SELECT *, login_history.login_time
FROM User
INNER JOIN login_history
ON User.user_id=login_history.user_id;
而這個查詢也會送給你,用戶和login_time的所有列。
非常感謝您的回覆。我在用戶表中有382條記錄,在login_history表中有3793條記錄。我運行以下查詢 - SELECT user_details。*,user_login_history.login_time FROM user_details INNER JOIN user_login_history ON user_details.user_id = user_login_history.user_id - 這將獲取總計3793個結果。但我期待總共383個結果。即所有用戶字段+最新登錄日期 – Roy
通過單個查詢我想獲取用戶詳細信息以及個人用戶的最新登錄時間。我期待像(UserID,First_Name,Last_Name,Last_Login_Time)的結果。非常感謝您的幫助。 – Roy
您應該使用左連接... –
以下是2次的查詢,可以幫助你選擇最新登錄時間和用戶的詳細信息
SELECT * FROM User C,login_history O where C.user_id=O.user_id order by O.login_time desc limit 1
或
SELECT * FROM User C,login_history O where C.user_id=O.user_id and ROWNUM <=1 order by O.login_time desc
對不起這些沒有工作。獲取只有1行。 – Roy
你想要最新登錄時間的豪宅。這個查詢只會給你那個結果。它將獲取最新登錄的所有用戶數據。 –
添加一些示例表格數據和預期結果 - 作爲格式化文本。同時向我們展示您當前的查詢嘗試。 – jarlh