Mysql SQL完全外部联接或并集
我有两张不同的桌子。一个是Mysql SQL完全外部联接或并集,mysql,sql,Mysql,Sql,我有两张不同的桌子。一个是文章表格,另一个是画廊表格。该库包含多个图像,因此还有另一个名为images(此处未显示)的表。images表中的图像使用外键gallery\u id链接到gallery表 现在,我想要实现的是,在主页中,我需要文章和图库的组合结果。如果是文章,则显示文章的缩略图;如果是图库,则显示图库中的最后一幅图像 |Article | |-----------| |id | |category_id| |title | |slug |
文章
表格,另一个是画廊
表格。该库包含多个图像,因此还有另一个名为images
(此处未显示)的表。images
表中的图像使用外键gallery\u id
链接到gallery表
现在,我想要实现的是,在主页中,我需要文章和图库的组合结果。如果是文章,则显示文章的缩略图;如果是图库,则显示图库中的最后一幅图像
|Article |
|-----------|
|id |
|category_id|
|title |
|slug |
|filename |
|body |
|created |
|modified |
我正在使用一个非常复杂的
UNION
查询来实现它。但是我如何对结果进行排序呢。是否可以使用ORDER BY
子句。使用OUTER JOIN
可以获得结果吗?听起来好像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
你想选择。。。从(--union query--)x ORDER BY x.col-如果我是你,我会查看union查询以便在其他地方使用,这会使查询不那么难看。
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