0

我正在编写一个嵌入在 C 程序中的 SQL,其中包含下表:

table index:id, xx

table a:id, year, yy

table b:id, year, zz

table c:id, year, vv

a,b,c 中的 id 属于索引中的 id

那么如何按年份选择所有的id顺序呢?

4

1 回答 1

0

你的问题不是很清楚你在追求什么。从表面上看,一个可能的答案可能是:

SELECT i.id, i.xx, a.year, a.yy
  FROM index AS i
  JOIN a ON i.id = a.id
UNION
SELECT i.id, i.xx, b.year, b.zz
  FROM index AS i
  JOIN b ON i.id = b.id
UNION
SELECT i.id, i.xx, c.year, c.vv
  FROM index AS i
  JOIN c ON i.id = c.id
ORDER BY year, id;

如果所有表 A、B 和 C 都连接到 Index 中的单个行,则存在替代查询(使用更多连接,其中一些可能是 LEFT OUTER JOIN)。yy如果,zz和表示的列vv不兼容,那么您需要指定如何处理它们(或者干脆将它们排除在查询之外)。

于 2012-06-19T21:17:53.333 回答