在MySQL中连接和排序两个表的结果

时间:2010-07-16 17:37:02

标签: sql mysql

我在MySQL中有两个表,一个包含字段City,另一个包含字段HomeCounty。我需要按字母顺序排序X个记录,以便将City和HomeCounty都放入集合中。

我无法加入,因为这两个表没有关系......因为我需要这两列是“一”而不是两列。

所以,我希望所有City记录和HomeCounty记录都在一个集合中,然后按字母顺序排序并将其限制为X.我真的不知道该怎么做。联盟?

2 个答案:

答案 0 :(得分:2)

是的,您使用的是UNION:

SELECT city AS name
  FROM TABLE_1
UNION ALL
SELECT homecountry AS name
  FROM TABLE_2
ORDER BY name
   LIMIT ?

如果您要删除重复项,请更改为UNION,但它会比UNION ALL慢。

UNION中的ORDER BY应用于整个结果集。如果要对UNION中的每个语句应用不同的ORDER BY条件,则必须使用括号定义语句:

 (SELECT city AS name
    FROM TABLE_1
ORDER BY name DESC)
UNION ALL
SELECT homecountry AS name
  FROM TABLE_2
   LIMIT ?

答案 1 :(得分:0)

类似于此:

select name from 
(
select city as name from table a
union 
select country from table b
)
order by name