需要SQL语句帮助

Gha*_*san 1 mysql sql

我有2个表,1个叫做SourceProperties.另一个叫做属性.

源可以有许多属性.

SourceProperties包含以下属性或列(SourceID,PropertyID,Value).属性包含以下属性或列(PropertyID,PropertyType,PropertyName).

例如,

Select * from SourceProperties where SourceID=1
Run Code Online (Sandbox Code Playgroud)

将返回以下内容

1     33     www.google.com/,...m,sand
1     34     true
1     35     Journal
1     77     false
Run Code Online (Sandbox Code Playgroud)

另外,

Select * from Properties where PropertyID=34
Run Code Online (Sandbox Code Playgroud)

将返回:

34 bit IpAuthenticated

Select * from Properties where PropertyID=77
Run Code Online (Sandbox Code Playgroud)

将返回:

77 bit ContainsBooks
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我需要选择某个SourceID的所有属性值,这样我就可以得到这样的结果

1 wwww.google.com true J​​ournal false

我能做什么?thx在先进!

Eri*_*lje 5

我想这可能就是你要找的东西

SELECT SourceID, GROUP_CONCAT(Value SEPARATOR ' ')
FROM SourceProperties
WHERE SourceID = 1
GROUP BY SourceID
Run Code Online (Sandbox Code Playgroud)

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