1

2つの列をSQLでマージする方法を理解するのに苦労しています(私はそれが初めてです)。それは本当に簡単なはずですが、それを行う方法が見つかりません。2 つの異なる selects ステートメントから 2 つの結果があり、どちらも行数は同じですが、列異なります。すべての列を一緒に「アタッチ」したいだけです。

例。これは最初のテーブルです:

トレーナークラス表

これは 2 番目の表です。

説明翻訳

次のクエリ:

SELECT [t].* FROM [TrainerClass] AS [t];

または単に

SELECT * FROM [TrainerClass];

ここに示す結果が得られます。

クエリ番号 1 の結果

次に、2 番目のクエリは次のとおりです。

SELECT [d].[Description] AS [Name] FROM [DescriptionTranslation] AS [d], [TrainerClass] AS [t] WHERE [d].[TableName] = 'TrainerClass' AND [d].[FieldName] = 'Name' AND [d].[Code] = [t].[Code] AND [d].[Language] = 'en-EN';

次の表になります。

クエリ番号 2 の結果

かなり簡単です。今、私が単に取得したいのはこれです:

最終結果

なぜ私はそんなに難しいのですか?それを達成するためにあなたは何をしますか?前もって感謝します!

4

3 に答える 3

4
SELECT [t].*,
       [d].[Description] AS [Name],
       [d2].[Description] AS [Description]
FROM   [TrainerClass] AS [t] join [DescriptionTranslation] AS [d] on [t].[Code] = [d].[Code]
       join [DescriptionTranslation] AS [d2] on [t].[Code] = [d2].[Code]
WHERE  [d].[TableName] = 'TrainerClass' AND 
       [d].[FieldName] = 'Name' AND 
       [d].[Language] = 'en-EN' AND
       [d2].[FieldName] = 'Description'
于 2013-10-03T15:25:45.347 に答える
0

テーブルに共通のIDがある場合は、回答に記載されているように結合を使用できます。それ以外の場合は、ユニオンステートメントを使用できます

于 2013-10-03T15:27:56.273 に答える