我有 2 个表,其中 1 个称为 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 wwww.google.com true 期刊 false
我能做什么? 谢谢!
最佳答案
我想这可能就是你要找的
SELECT SourceID, GROUP_CONCAT(Value SEPARATOR ' ')
FROM SourceProperties
WHERE SourceID = 1
GROUP BY SourceID
这将为您提供所有属性,以空格分隔(但不是单独的列)。如果您希望每个属性作为一个单独的列,那将涉及一些非常奇特的动态 SQL,并且会相当困难。
关于mysql - 需要 SQL 语句帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8605426/