加入&将两个表合并为一个

时间:2014-09-17 06:09:05

标签: mysql join merge

我有两个表,它们共享几列。我想加入他们,并合并字段。

我想查询它们,并将它们合并为一行 - 使用最新数据,基于created字段

示例:

table1 [id, created, name, title, file, delete]
table2 [id, created, name, title, old, active]
# result
       [id, created, name, title, file, delete, old, active]

怎么做?

2 个答案:

答案 0 :(得分:0)

这是您正在寻找的查询(考虑到两个表之间的两个ID都相同):

SELECT T1.id
    ,T1.created
    ,T1.name
    ,T1.title
    ,T1.file
    ,T1.delete
    ,T2.old
    ,T2.active
FROM table1 T1
INNER JOIN (SELECT TL.id
                ,MAX(TL.created) AS created
            FROM table1 TL
            GROUP BY TL.id) T ON T.id = T1.id
                                 AND T.created = T1.created
INNER JOIN table2 T2 ON T2.id = T1.id
                       AND T2.created = T1.created

第一个INNER JOIN用于仅保留每个id的最新事件(使用GROUP BY子句和MAX函数)。

希望这会有所帮助。

答案 1 :(得分:-1)

SELECT a.id, a.created, a.name, a.title, a.file, a.delete, b.old, b.active
FROM table1 a,
     table2 b
WHERE a.id = b.id