MySQL选择一行,将其联接成多行

问题描述

| 我有一个名为
sessions
的表,如下所示:
#################################
# set    # timestamp  # session #
#################################
# 5      # 1306458002 # 11      #
# 3      # 1306473234 # 6       #
# 3      # 1305241207 # 3       #
...
#################################
我有一个名为
events
的表,如下所示:
#######################
# session    # code   #
#######################
# 6          # 45     #
# 6          # -10    #
# 6          # 0      #
# 3          # 7      #
...
#######################
我需要选择给定集合的最新会话,然后将相关事件代码加入该记录的顶部。不过最重要的是,我只需要提供一个集合(这里的集合为3)中的以下信息:
########
# code #
########
# 45   #
# -10  #
# 0    #
########
    

解决方法

        
select e.code
from events e
inner join sessions s
    on s.session = e.session
where s.set = <whatever set you want>
and s.timestamp = (select max(timestamp) from sessions where set = s.set)
    ,        
select
    e.code
from
    (select
        max(session) as session
    from
        sessions s
    where
        s.set = 3) ms
    inner join event e on e.session = ms.session