SQL - 仅合并来自不同表的某些列

时间:2012-01-10 08:42:35

标签: mysql

我有两个表,我希望通过将一些列合并在一起,同时让其他列保持不同,在SELECT查询中变成一个。

第一个表(posts_article)

 id_post   id_user   title   content   published   nbr_comments   timestamp
 ---------------------------------------------------------------------------
 1         15        title1  text1     1           23             1111111111
 2         20        title2  text2     0           54             1122334455

第二张表(posts_text)

 id_post   id_user   message   nbr_comments   timestamp
 -------------------------------------------------------
 1         17        message1  15             1234567891
 2         22        message2  0              1987654321

预期结果

 id_post   id_user   title   content   message    published   nbr_comments   timestamp
 --------------------------------------------------------------------------------------
 1         15        title1  text1                1           23             1111111111
 2         20        title2  text2                0           54             1122334455
 1         17                          message1               15             1234567891
 2         22                          message2               0              1987654321

我尝试过一些东西,但我无法解决这个问题。我怎样才能得到预期的结果?选择结果的最有效方法是什么?

编辑:这次合并的逻辑是能够同时获得所有不同类型的“帖子”(由用户提交)。

感谢。

1 个答案:

答案 0 :(得分:1)

尝试:

SELECT id_post, id_user,  title,  content, NULL AS message , published, nbr_comments, timestamp FROM posts_article
UNION
SELECT id_post, id_user, NULL as title, NULL as content,  message, NULL as published, nbr_comments, timestamp FROM posts_text