2011-12-22 219 views
1

我有2個表,1個稱爲SourceProperties。另一個叫做屬性。需要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真正的雜誌假

我該怎麼辦? thx in advanced!

回答

5

我認爲這可能是你在找什麼

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

這會給你的所有屬性,用空格(但不作爲單獨的列)分開。如果您希望將每個屬性作爲單獨的列,那將涉及一些漂亮的動態SQL,並且會更困難。