002-view_federation_structures.sql 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. CREATE OR REPLACE VIEW view_federation_structures
  2. AS
  3. SELECT o.id, o.name, o.logo_id as logoId, o.description, o.image_id as imageId, o.principalType as type, p.otherWebsite as website,
  4. CONCAT('[', GROUP_CONCAT(COLUMN_JSON(COLUMN_CREATE(
  5. 'type', oa.type, 'latitude', a.latitude, 'longitude', a.longitude,
  6. 'streetAddress', TRIM(BOTH '\n' FROM CONCAT_WS('\n', a.streetAddress, a.streetAddressSecond, a.streetAddressThird)),
  7. 'postalCode', a.postalCode, 'addressCity', a.addressCity, 'country', c.name))), ']') as addresses,
  8. cp.telphone as phone, cp.mobilPhone as mobilePhone, cp.email, o.facebook, o.twitter, o.instagram, o.youtube,
  9. (SELECT CONCAT(GROUP_CONCAT(DISTINCT CONCAT(tp.name))) FROM organization_type_of_practices AS otp
  10. LEFT JOIN TypeOfPractice AS tp ON(tp.id = otp.typeofpractice_id)
  11. WHERE otp.organization_id = o.id)
  12. AS practices,
  13. oar.articles, n1.parent_id as parentId, net1.name as parentName,
  14. CONCAT_WS(',', n1.parent_id, n2.parent_id, n3.parent_id, n4.parent_id, n5.parent_id) as parents
  15. <<<<<<< Updated upstream
  16. FROM opentalent.Organization o
  17. INNER JOIN opentalent.Parameters p on o.parameters_id = p.id
  18. LEFT JOIN opentalent.OrganizationAddressPostal oa on oa.organization_id = o.id
  19. LEFT JOIN opentalent.AddressPostal a on oa.addressPostal_id = a.id
  20. LEFT JOIN opentalent.Country c ON (c.id = a.addressCountry_id)
  21. LEFT JOIN opentalent.organization_contactpoint ocp ON ocp.organization_id = o.id
  22. INNER JOIN (SELECT * FROM opentalent.ContactPoint WHERE `contactType`='PRINCIPAL') cp ON cp.id = ocp.contactPoint_id
  23. =======
  24. FROM Organization o
  25. INNER JOIN Parameters p on o.parameters_id = p.id
  26. LEFT JOIN OrganizationAddressPostal oa on oa.organization_id = o.id
  27. LEFT JOIN AddressPostal a on oa.addressPostal_id = a.id
  28. LEFT JOIN Country c ON (c.id = a.addressCountry_id)
  29. LEFT JOIN organization_contactpoint ocp ON ocp.organization_id = o.id
  30. LEFT JOIN (SELECT * FROM ContactPoint WHERE `contactType`='PRINCIPAL') cp ON cp.id = ocp.contactPoint_id
  31. >>>>>>> Stashed changes
  32. LEFT JOIN (
  33. SELECT oar_.organization_id, CONCAT('[', GROUP_CONCAT(COLUMN_JSON(COLUMN_CREATE('id', oar_.id, 'title', oar_.title, 'date', DATE_FORMAT(oar_.date, '%Y-%m-%dT%TZ'), 'link', oar_.link))), ']') as articles
  34. FROM (SELECT * FROM OrganizationArticle WHERE link is not null and link != '' ORDER BY date DESC) as oar_
  35. group by organization_id
  36. ) oar ON oar.organization_id = o.id
  37. INNER JOIN (SELECT DISTINCT organization_id, parent_id FROM NetworkOrganization WHERE parent_id NOT IN (32366, 13) AND (endDate IS NULL OR endDate = '0000-00-00')) n1 on n1.organization_id = o.id
  38. INNER JOIN Organization net1 ON net1.id = n1.parent_id
  39. LEFT JOIN (SELECT DISTINCT organization_id, parent_id FROM NetworkOrganization WHERE parent_id NOT IN (32366, 13) AND (endDate IS NULL OR endDate = '0000-00-00')) n2 on n2.organization_id = n1.parent_id
  40. LEFT JOIN (SELECT DISTINCT organization_id, parent_id FROM NetworkOrganization WHERE parent_id NOT IN (32366, 13) AND (endDate IS NULL OR endDate = '0000-00-00')) n3 on n3.organization_id = n2.parent_id
  41. LEFT JOIN (SELECT DISTINCT organization_id, parent_id FROM NetworkOrganization WHERE parent_id NOT IN (32366, 13) AND (endDate IS NULL OR endDate = '0000-00-00')) n4 on n4.organization_id = n3.parent_id
  42. LEFT JOIN (SELECT DISTINCT organization_id, parent_id FROM NetworkOrganization WHERE parent_id NOT IN (32366, 13) AND (endDate IS NULL OR endDate = '0000-00-00')) n5 on n5.organization_id = n4.parent_id
  43. GROUP BY o.id;