SQL按主键顺序从两个表中获取结果

时间:2011-02-13 05:13:14

标签: sql

在我的查询中,我想从两个不同的表中获取主键下降的行。它们有两个不同的键,因此可以在一个查询中执行此操作吗?

2 个答案:

答案 0 :(得分:5)

你的问题有点模糊。要“从两个不同的表中获取行”,您可以执行JOIN,或者可以执行UNION。

如果是JOIN:

SELECT a.id, a.something, b.id, b.something
FROM a
INNER JOIN b ON b.aId = a.id
ORDER BY a.id, b.id

如果是UNION:

SELECT id, something
FROM (
    SELECT a.id. a.something FROM a
    UNION 
    SELECT b.id, b.something FROM b
) t
ORDER BY t.id

这些非常不同,但似乎其中一个会满足您的需求。

(请注意,UNION默认情况下会删除重复项。使用UNION ALL保留重复项。)

答案 1 :(得分:0)

SELECT     * 
FROM       ( select a.pk, a.foo, a.bar from a
             union
             select b.pk, b.foo, b.bar from b
           ) c
ORDER BY   c.pk DESC;