SQL
USE [#databse#] GO /****** Object: StoredProcedure [dbo].[GetArticlesByCulture] Script Date: 28/09/2022 09:57:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[GetArticlesByCulture] @cultureId int = 127 AS BEGIN SET NOCOUNT ON; SELECT CPV.Author AS Author, CPV.Id AS Id, CPV.Content AS Name, CPV.PublishDate AS PublishDate, CPV.Category AS Category, CPV.DisplayName AS Culture, CPV.CultureId AS CultureId, CP.Id AS ContentPageId, CP.SubSiteId AS SubSiteId FROM ContentPages CP CROSS APPLY ( SELECT TOP 1 CPV.Id, CPV.CultureId, CPV.PublishDate, C.DisplayName, CI.Content, U.FirstName + ' ' + U.LastName AS Author, CN.Name AS Category FROM ContentPageVersions CPV LEFT OUTER JOIN Cultures C ON CPV.CultureId = C.Id LEFT OUTER JOIN ContentItems CI ON CPV.Id = CI.ContentPageVersionId AND CI.SystemCodeId = 13 LEFT OUTER JOIN Audit A ON CPV.AuditId = A.Id LEFT OUTER JOIN Users U ON A.UserId = U.Id LEFT OUTER JOIN Categories CS ON CPV.DefaultCategory = CS.Id LEFT OUTER JOIN CategoryNames CN ON CS.Id = CN.CategoryId AND CN.CultureId = @cultureId WHERE CPV.ContentPageId = CP.Id AND CPV.CultureId = @cultureId ORDER BY CPV.PublishDate DESC ) CPV WHERE CP.Deleted = 0 AND CP.PageType = 3 /* 3 = article type*/ END
MySQL
CREATE DEFINER=`sa`@`%` PROCEDURE `GetArticlesByCulture`(p_cultureId int /* = 127 */) BEGIN DROP TABLE IF EXISTS new_tbl; DROP TABLE IF EXISTS new_tbl2; CREATE TEMPORARY TABLE new_tbl SELECT CPV.Author AS Author, CPV.Id AS Id, CPV.Content AS Name, CPV.PublishDate AS PublishDate, CPV.Category AS Category, CPV.DisplayName AS Culture, CPV.CultureId AS CultureId, CP.Id AS ContentPageId FROM ContentPages CP INNER JOIN ( SELECT CPV.Id, CPV.CultureId, CPV.PublishDate, C.DisplayName, CI.Content, CONCAT(U.FirstName , ' ' , U.LastName) AS Author, CN.Name AS Category, CPV.ContentPageId FROM ContentPageVersions CPV LEFT OUTER JOIN Cultures C ON CPV.CultureId = C.Id LEFT OUTER JOIN ContentItems CI ON CPV.Id = CI.ContentPageVersionId AND CI.SystemCodeId = 13 LEFT OUTER JOIN Audit A ON CPV.AuditId = A.Id LEFT OUTER JOIN Users U ON A.UserId = U.Id LEFT OUTER JOIN Categories CS ON CPV.DefaultCategory = CS.Id LEFT OUTER JOIN CategoryNames CN ON CS.Id = CN.CategoryId AND CN.CultureId = p_cultureId ORDER BY CPV.PublishDate DESC ) CPV on CPV.ContentPageId = CP.Id WHERE CP.Deleted = 0 AND CP.PageType = 3 /* 3 = article type*/ AND CPV.CultureId = p_cultureId; CREATE TEMPORARY TABLE new_tbl2 SELECT * FROM new_tbl; SELECT * FROM new_tbl WHERE Id IN (SELECT MAX(Id) FROM new_tbl2 GROUP BY ContentPageId); END
Created: 14-Oct-2022