以下のテーブルを使用して、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 は index の id に属します
次に、すべてのIDオーダーを年ごとに選択する方法は?
あなたの質問は、あなたが求めているものについてあまり明確ではありません。表面的には、考えられる答えの 1 つとして次のようなものがあります。
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 がインデックス内の 1 つの行に結合されている場合、代替クエリがあります (さらに多くの結合を使用し、その一部は LEFT OUTER JOIN である可能性があります)。とで表される列yy
に互換性がない場合は、それらをどう処理するかを指定する (または単にクエリから除外する) 必要があります。zz
vv