2

2 つのデータベース テーブルがあります。

Definitionsテーブルには次の列があります。

Id, Category

サンプルデータ:

1, What is capital of USA ?
2, Who broke my glass ?

Optionsテーブルには次の列があります。

Id, DefinitionId, Value

サンプルデータ:

1, 1, New York
2, 1, Melbourne
3, 1, Lahore
4, 2, Boss
5, 2, My brother
6, 2, Your girlfriend

すべてのオプションを使用してすべての質問を照会する方法を教えてください。以下のようなデータが必要です。

"", 1, What is capital of USA ?
1,1, New York
2,1, Melbourne
3, 1, Lahore

"", 2,Who broke my glass ?
4, 2, Boss
5, 2, My brother
6, 2, Your girlfriend

ガイドしてください

4

4 に答える 4

1

これには、UNION ALL次のように使用します。

SELECT '' ID, DefinitionId, Category AS value FROM Definitions WHERE ID = 1
UNION ALL
SELECT Id, DefinitionId, Value FROM Options WEHRE DefentionID = 1;

JOIN次のように2つのテーブルの方が良いことに注意してください。

SELECT 
  d.Id,
  o.Id,
  o.Value
FROM Definitions d
INNER JOIN Options o ON d.ID = o.DefinitionId
WHERE d.Id = 1;

また、SQL でこの書式設定を行うことを考慮しないでください。

更新:すべての質問を取得するには、これを試してください:

SELECT '' ID, ID AS DefinitionId, Category AS value FROM Definitions 
UNION ALL
SELECT Id, DefinitionId, Value FROM Options
ORDER BY DEFINITIONID, ID;

SQL フィドルのデモ

これにより、次のことが得られます。

| ID | DEFINITIONID |                    VALUE |
------------------------------------------------
|  0 |            1 | What is capital of USA ? |
|  1 |            1 |                 New York |
|  2 |            1 |                Melbourne |
|  3 |            1 |                   Lahore |
|  0 |            2 |     Who broke my glass ? |
|  4 |            2 |                     Boss |
|  5 |            2 |               My brother |
|  6 |            2 |          Your girlfriend |
于 2012-12-11T06:42:40.153 に答える
0
SELECT  NULL,D.Id,D.Category
FROM    Definitions D
UNION
SELECT  O.Id,O.DefinitionId,O.Value
FROM    Options O
ORDER BY 2,1
于 2012-12-11T06:55:54.367 に答える
0
SELECT ' ',D.ID,D.category from Definitions D where D.Id = 1
UNION 
SELECT C.ID,C.DefinitionId,C.Value from options C where C.DefinitionId=1 
于 2012-12-11T06:50:49.130 に答える
0

要求どおりにデータを表示するには、データベースをソースとして Excel でピボット テーブルのようなものを使用することもできます。これは、Sql Server Analysis Services でも​​うまく機能します。

于 2012-12-11T06:46:40.867 に答える