Требуется помощь оператора SQL - PullRequest
1 голос
/ 22 декабря 2011

у меня есть 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

что я могу сделать?спасибо в продвинутом!

1 Ответ

5 голосов
/ 22 декабря 2011

Я думаю, это может быть то, что вы ищете

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

Это даст вам все свойства, разделенные пробелами (но не как отдельные столбцы). Если бы вы хотели, чтобы каждое свойство представляло собой отдельный столбец, это включало бы довольно причудливый динамический SQL и было бы значительно сложнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...