2011-12-22 6 views
1

2つのテーブルがあり、1つはSourcePropertiesと呼ばれます。もう1つはプロパティと呼ばれます。SQL文のアシスタンスが必要です

ソースには多くのプロパティがあります。

SourcePropertiesには、次の属性または列(SourceID、PropertyID、Value)が含まれています。 プロパティには、次の属性または列(PropertyID、PropertyType、PropertyName)が含まれています。例えば

Select * from SourceProperties where SourceID=1 

は、さらに以下

1  33  www.google.com/,...m,sand 
1  34  true 
1  35  Journal 
1  77  false 

返され、

Select * from Properties where PropertyID=34 

が返す:

34 bit IpAuthenticated 

Select * from Properties where PropertyID=77 

が返されます:

77 bit ContainsBooks 

私の質問はこれです、私はので、私はそのような結果を得ることができ、特定のSourceID のすべてのプロパティ値を選択する必要がある場合

1 wwww.google.com真・ジャーナル偽

私は何ができますか? 進んだ!

答えて

5

私は、これはあなたがこれはあなたのスペース(ただし、個々の列など)で区切られたすべてのプロパティを、与える

SELECT SourceID, GROUP_CONCAT(Value SEPARATOR ' ') 
FROM SourceProperties 
WHERE SourceID = 1 
GROUP BY SourceID 

探しているものかもしれないと思います。それぞれのプロパティを個別の列として欲しければ、それはいくらか魅力的な動的SQLを含み、かなり難しくなります。

関連する問題