嵌入在c程序中的sql对多个表进行排序

嵌入在c程序中的sql对多个表进行排序,sql,c,Sql,C,我正在用下表编写一个嵌入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订单?您的问题不是很清楚您想要的是什么。表面上看,一个可能的答案可能是: SELECT i.id, i.xx, a.year, a.yy FROM index AS i JOIN a ON i.id = a.id

我正在用下表编写一个嵌入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订单?

您的问题不是很清楚您想要的是什么。表面上看,一个可能的答案可能是:

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都连接到索引中的一行,则存在替代查询(使用更多连接,可能其中一些是外部连接)。如果由
yy
zz
vv
表示的列不兼容,则需要指定如何处理它们(或者干脆将它们排除在查询之外)。

同一id是否可以存在于a、b、c中的多个中?一些示例数据可能会有所帮助