我在MySQL中有两个表,一个包含字段City,另一个包含字段HomeCounty。我需要按字母顺序排序X个记录,以便将City和HomeCounty都放入集合中。
我无法加入,因为这两个表没有关系......因为我需要这两列是“一”而不是两列。
所以,我希望所有City记录和HomeCounty记录都在一个集合中,然后按字母顺序排序并将其限制为X.我真的不知道该怎么做。联盟?
答案 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