Здравствуйте. Натолкнулся на такую проблему: работаю с базой MS SQL SERVER 2008. Опишу только по проблеме основные таблицы. Есть у меня 2 таблицы такого вида:
Plavka
| id | plavka |
| d6746ae5-56c9-4bb8-b1da-0f0306f3f01a | 60 |
| 570cf89f-ec9b-4e00-97ec-156dec158350 | 61 |
| feb82cfe-f0bc-4f6d-8399-dc7930ace713 | 62 |
Paket
| id | paket |
| 12a92612-a396-46b4-9c5d-b055d2697428 | 576 |
| 174af3ec-81f8-4c3d-8109-c41543737456 | 577 |
И таблица связок paketPlavka
| id | paket | plavka |
| e25c5831-02c9-4c1c-9624-2ae69a5ebee8 | 12a92612-a396-46b4-9c5d-b055d2697428 | d6746ae5-56c9-4bb8-b1da-0f0306f3f01a |
| b55f655c-3bd8-497c-a290-71f635be4331 | 12a92612-a396-46b4-9c5d-b055d2697428 | 570cf89f-ec9b-4e00-97ec-156dec158350 |
| 3c699c5a-977b-42d3-99c7-f10a03c3beb4 | 174af3ec-81f8-4c3d-8109-c41543737456 | feb82cfe-f0bc-4f6d-8399-dc7930ace713 |
То есть по сути Paket состоит из >= 1 Plavka как мне вывести какой пакет из каких плавок состоит через запятую вида:
| 576 | 60, 61 | | 577 | 62 |
Понимаю то что нужно это делать через процедуру, но не знаю как и или каким способом это всё сделать. Не могли подсказать?
через фунцию like. Скорость будет только аховой. Но вам похоже это не требуется:
select * from plavka p1, paket p2, plavkapaket p3
where
p1.id = p3.id and p2.id =p3.packet
данные придут построчно и тогда программно их сформировать в строку.