面白いものを手に入れました。参加しているテーブルが3つあります。最後に参加したテーブルです。日付ごとに最新のエントリのみを表示し、同じユーザーで結果が2倍にならず、ログイン時間が異なるだけにしたいのです。
例(これはサンプルテーブルのみです):
SELECT a.user_id
a.user_name,
b.department,
c.last_logon_date_time,
c.computer_name
FROM table1 a
LEFT OUTER JOIN table2 b ON a.user_id = b.user_id
LEFT OUTER JOIN table3 c ON c.user_id = c.user_id
以下に私が探している結果を示しますが、非常に非効率に見え、本当に遅いです。これをスピードアップしてより効率的にする方法はありますか?
私はこれを行うことができます
SELECT a.user_id
a.user_name,
b.department,
(SELECT c.last_logon_datetime FROM table 3 c WHERE a.user_id = c.user_id ORDER BY c.last_logon_datetime DESC LIMIT 1) as last_logon_datetime,
(SELECT c.computer_name FROM table 3 c WHERE a.user_id = c.user_id ORDER BY c.last_logon_datetime DESC LIMIT 1) as computer_name
FROM table1 a
LEFT OUTER JOIN table2 b ON a.user_id = b.user_id
ありがとうございました。