我有两个表,一个叫做SourceProperties。另一种叫做属性。
一个源可以有许多属性。
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 www.google.com真日志假
我能做什么?
thx先进!

最佳答案

我想这可能就是你要找的

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

这将为您提供所有属性,用空格分隔(但不作为单独的列)。如果您希望将每个属性作为单独的列,那么这将涉及一些非常奇特的动态SQL,并且会相当困难。

08-28 02:56