我有两个表a和b,其中包含一个字段名称。
我需要列出这两个表中的数据。我想到了使用union,但是在结果列表中,第一个表中的数据出现,然后是第二个。
我想要的是按字段名称排序,因此结果应该是按名称顺序排列的两个表的混合。
答案 0 :(得分:3)
select slug, name, 1 as mt
from tablea
union
select slug, name, 0 as mt
from tableb
order
by name;
以上对我来说效果很好。结果会不会有任何复杂情况?
答案 1 :(得分:0)
假设您的查询是
SELECT field1 FROM TABLE1 WHERE 1
UNION SELECT field1 FROM TABLE2 WHERE 1
你可以把它变成像这样的子查询
SELECT * FROM (SELECT field1 FROM TABLE1 WHERE 1
UNION SELECT field1 FROM TABLE2 WHERE 1) AS `result` ORDER BY `result`.`field1`
答案 2 :(得分:0)
或者,您可以使用加入查询,例如:
SELECT tablea.firstname, tablea.middlename, tablea.lastname, tableb.phone
FROM tablea, tableb
WHERE tablea.ID = tableb.ID
然后,您可以根据自己的喜好对结果进行排序。