我有3個表,如下所示。給定一個特定的成員名稱搜索術語,我想獲取成員名稱的列表,以及每個成員名稱的最新活動時間。從選擇語句中的每行輸出的2個連接表中獲取最新時間戳
「最新活動時間」是比較game_record和eating_record表格的最新時間。
期望的輸出也在下面給出。
member_info表:
name m_id
---- ----
john 1
doe 2
johnson 3
game_record:
time_of_activity game_id m_id
---------------- ------- -----
2013-01-20 23:01:00 1 3
2013-01-20 23:01:07 4 1
2013-01-20 23:01:06 1 2
2013-01-20 23:01:05 3 1
eating_record:
time_of_activity food_id m_id
---------------- ------- -----
2013-01-20 23:01:04 1 1
2013-01-20 23:01:03 4 1
2013-01-20 23:01:02 1 2
2013-01-20 23:01:01 3 3
所需的輸出時搜索項是 '約翰':
name m_id latest_time
---- ---- -----------
john 1 2013-01-20 23:01:07
johnson 3 2013-01-20 23:01:01
我迄今爲止嘗試:
我能得到前2列由以下查詢:
select name,
m_id
from
member_info
where
name like "john%";
,我還可以通過下面的查詢得到一個給定的成員latest_time ,但我不知道如何將第二個查詢與第一個查詢合併以獲得所需的輸出。
select greatest ((select
max(time_of_activity)
from
game_record
join
member_info on game_record.m_id = member_info.m_id
where member_info.name = "john"),
(select
max(time_of_activity)
from
eating_record
join
member_info on eating_record.m_id = member_info.m_id
where member_info.name = "john"));
SQL搗鼓這個,請訪問:http://sqlfiddle.com/#!2/b70d0/3
附:表game_record和eating_record還有其他專欄,這些專欄並不包含在這裏,因爲我想簡化和隔離需要幫助的部分。
謝謝! :)
這將是我們更容易幫助你,如果你設置了[SQL小提琴(HTTP:// sqlfiddle.com/) – 2013-05-02 18:40:14
謝謝,我已將它添加到問題! – Yoga 2013-05-02 19:16:02