1

複数のテーブルから情報を収集するだけでなく、同じテーブル内の他の行のデータと一致する特定のテーブル内から情報を収集する select ステートメントを作成する必要があります。

したがって、結合は複数のテーブルの問題に対して機能しますが、私が知る限り、同じテーブルの列 a と列 b を「結合」することはできません。

詳細はこちら

次のテーブルがあります

CR、VM、およびフォルダ

以下を選択する必要があります。

CR の ID と名前

フォルダ名

ただし、フォルダー名はフォルダー テーブルにありません。それを見つけるには、最初に CR から「ID」を取得し、それを VM の「ObjectID」と一致させる必要があります。次に、その行の列「Location」が別の行の ObjectID と一致します。 VM テーブル。

次に、フォルダー内の ID をその ObjectID と照合し、「フォルダー」テーブルの「名前」を取得してフォルダー名を取得する必要があります。

どこから始めればよいかよくわかりません。これにはカーソルを使用する必要がありますか?

4

1 に答える 1

1

結合の片側に別名を付けることで、テーブルをそれ自体に対して結合することができます。始めるにはこれで十分かもしれません。それ以外の場合は、いくつかのサンプル データを確認する必要があります。

SELECT
  CR.ID,
  CR.Name,
  Folder.Name AS FolderName
FROM
  CR
  /* First join CR to VM */
  INNER JOIN VM ON CR.ID = VM.ObjectID
  /* Then join VM to itself aliased as VMLoc, mapping Location to ObjectID */
  INNER JOIN VM AS VMLoc ON VM.Location = VMLoc.ObjectID
  /* Finally join the second ObjectID to Folder to get Folder.Name */
  INNER JOIN Folder ON Folder.ID = VMLoc.ObjectID
于 2013-01-10T13:27:54.043 に答える