我正在编写一个嵌入在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顺序?
答案 0 :(得分: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
代表的列不兼容,那么您需要指定如何处理它们(或者只是将它们排除在查询之外)。