Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- select mt1.*, json_agg(mt2.*)
- from menutable mt1
- join menutable mt2 on mt1.id = mt2.üstmenuid
- group by mt1.id;
- {
- "results": [
- {
- "id": 4,
- "menuadi": "Ortak Haberler",
- "üstmenuid": null,
- "json_agg": [
- {
- "id": 5,
- "menuadi": "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
- "üstmenuid": 4
- },
- {
- "id": 6,
- "menuadi": "Sed eget ipsum sit amet massa varius commodo",
- "üstmenuid": 4
- }
- ]
- },
- {
- "id": 1,
- "menuadi": "Ortak Konulu Mansetler",
- "üstmenuid": null,
- "json_agg": [
- {
- "id": 2,
- "menuadi": "In hac habitasse platea dictumst",
- "üstmenuid": 1
- },
- {
- "id": 3,
- "menuadi": "Nullam molestie augue sit amet magna bibendum imperdiet.",
- "üstmenuid": 1
- }
- ]
- }
- ]
- }
- SELECT mt1.*, mt2.*
- FROM dbo.MenuTable AS mt1
- JOIN dbo.MenuTable AS mt2 ON mt1.ID = mt2.UstMenuID;
- GROUP BY mt1.ID, mt1.MenuAdi, mt1.UstMenuID, mt2.ID, mt2.MenuAdi, mt2.UstMenuID
- {
- "results": [
- {
- "ID": 2,
- "MenuAdi": "In hac habitasse platea dictumst",
- "UstMenuID": 1
- },
- {
- "ID": 3,
- "MenuAdi": "Nullam molestie augue sit amet magna bibendum imperdiet.",
- "UstMenuID": 1
- },
- {
- "ID": 5,
- "MenuAdi": "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
- "UstMenuID": 4
- },
- {
- "ID": 6,
- "MenuAdi": "Sed eget ipsum sit amet massa varius commodo",
- "UstMenuID": 4
- }
- ]
- }
- create table menutable (
- id int primary key
- , menuadi text
- , ustmenuid int null references menutable (id)
- );
- insert into menutable values
- (1,'Ortak Konulu Mansetler',null)
- ,(2,'Kayseri Deki Bombalı Saldırının Yansımaları',1)
- ,(3,'Sayın Cumhurbaşkanımızın Trabzon Daki Açıklamalarının Yansımaları',1)
- ,(4,'Ortak Haberler',null)
- ,(5,'Sayın Hanımefendinin Trabzonda Şehit Aileleriyle Bir Araya Gelmesinin Yansımaları',4)
- ,(6,'Türk Meslektaşlarımızın Yanındayız',4);
- select mt1.*, json_agg(mt2.*)
- from menutable mt1
- join menutable mt2 on mt1.id = mt2.ustmenuid
- group by mt1.id;
- +----+------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------+
- | id | menuadi | ustmenuid | json_agg |
- +----+------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------+
- | 1 | Ortak Konulu Mansetler | NULL | [{"id":2,"menuadi":"Kayseri Deki Bombalı Saldırının Yansımaları","ustmenuid":1} |
- | | | | , {"id":3,"menuadi":"Sayın Cumhurbaşkanımızın Trabzon Daki Açıklamalarının Yansımaları","ustmenuid":1}] |
- | 4 | Ortak Haberler | NULL | [{"id":5,"menuadi":"Sayın Hanımefendinin Trabzonda Şehit Aileleriyle Bir Araya Gelmesinin Yansımaları","ustmenuid":4} |
- | | | | , {"id":6,"menuadi":"Türk Meslektaşlarımızın Yanındayız","ustmenuid":4}] |
- +----+------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------+
- create table menutable (
- id int primary key
- , menuadi nvarchar(128)
- , ustmenuid int null references menutable (id)
- );
- insert into menutable values
- (1,'Ortak Konulu Mansetler',null)
- ,(2,'Kayseri Deki Bombalı Saldırının Yansımaları',1)
- ,(3,'Sayın Cumhurbaşkanımızın Trabzon Daki Açıklamalarının Yansımaları',1)
- ,(4,'Ortak Haberler',null)
- ,(5,'Sayın Hanımefendinin Trabzonda Şehit Aileleriyle Bir Araya Gelmesinin Yansımaları',4)
- ,(6,'Türk Meslektaşlarımızın Yanındayız',4);
- select mt1.*, [json_agg]=dbo.FlattenedJson (
- ( select mt2.*
- from menutable mt2
- where mt2.ustmenuid = mt1.id
- for xml path, root
- )
- )
- from menutable mt1
- where mt1.ustmenuid is null
- +----+------------------------+-----------+---------------------------------------------------------------------------------------------------------------------------+
- | id | menuadi | ustmenuid | json_agg |
- +----+------------------------+-----------+---------------------------------------------------------------------------------------------------------------------------+
- | 1 | Ortak Konulu Mansetler | NULL | [ |
- | | | | {"id":"2","menuadi":"Kayseri Deki Bombali Saldirinin Yansimalari","ustmenuid":"1"}, |
- | | | | {"id":"3","menuadi":"Sayin Cumhurbaskanimizin Trabzon Daki Açiklamalarinin Yansimalari","ustmenuid":"1"} |
- | | | | ] |
- | 4 | Ortak Haberler | NULL | [ |
- | | | | {"id":"5","menuadi":"Sayin Hanimefendinin Trabzonda Sehit Aileleriyle Bir Araya Gelmesinin Yansimalari","ustmenuid":"4"}, |
- | | | | {"id":"6","menuadi":"Türk Meslektaslarimizin Yanindayiz","ustmenuid":"4"} |
- | | | | ] |
- +----+------------------------+-----------+---------------------------------------------------------------------------------------------------------------------------+
Add Comment
Please, Sign In to add comment