SQL全外连接或联盟

时间:2013-08-07 16:07:37

标签: mysql sql

我有两张不同的牌桌。一个是Article表,另一个是Gallery表。该库包含多个图像,因此还有另一个名为images的表(此处未显示)。 images表中的图像使用外键gallery_id链接到图库表。

现在我想要实现的是,在主页中,我需要文章和图库的综合结果。如果是文章,则会显示文章的缩略图,如果是图库,则会显示图库中的最后一个图像。

|Article    | 
|-----------|
|id         |
|category_id|
|title      |
|slug       |
|filename   |
|body       |
|created    |
|modified   |

|Gallery|
|-----------|
|id         |
|category_id|
|title      |
|slug       |
|body       |
|created    |
|modified   |

我正在使用非常复杂的UNION查询来实现它。但是我怎样才能对结果进行排序。是否可以使用ORDER BY子句。可以使用OUTER JOIN来实现结果吗?

1 个答案:

答案 0 :(得分:1)

outer join之类的声音在此处不适用,因为您希望结果位于一列中。联接将数据分为两列,联合将数据分成一列。

进行排序,你可以做这样的事情

Select  id         
    , category_id
    , title      
    , slug       
    , filename   
    , body       
    , created    
    , modified
From (  
    Select id         
        , category_id
        , title      
        , slug       
        , filename   
        , body       
        , created    
        , modified 
    From Article 
    Union All Select id         
        , category_id
        , title      
        , slug       
        , body       
        , created    
        , modified 
    From Gallery
) AllCombined
Order by AllCombined.title