在我的查询中,我想从两个不同的表中获取主键下降的行。它们有两个不同的键,因此可以在一个查询中执行此操作吗?
答案 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;