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 は index の id に属します

次に、すべてのIDオーダーを年ごとに選択する方法は?

4

1 に答える 1

0

あなたの質問は、あなたが求めているものについてあまり明確ではありません。表面的には、考えられる答えの 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に互換性がない場合は、それらをどう処理するかを指定する (または単にクエリから除外する) 必要があります。zzvv

于 2012-06-19T21:17:53.333 に答える