样品日期:
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Products](
[Id] [int] NULL,
[Name] [nvarchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[EntityPictures](
[Id] [int] IDENTITY(1,1) NOT NULL,
[EntityId] [int] NOT NULL,
[PictureId] [int] NOT NULL,
[DisplayOrder] [int] NOT NULL,
[IsDefault] [bit] NOT NULL,
[EntityType] [nvarchar](max) NULL,
CONSTRAINT [PK_EntityPictures] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Pictures](
[Id] [int] IDENTITY(1,1) NOT NULL,
[PictureBinary] [varbinary](max) NULL,
[MimeType] [nvarchar](max) NULL,
[SeoFilename] [nvarchar](max) NULL,
[AltAttribute] [nvarchar](max) NULL,
[TitleAttribute] [nvarchar](max) NULL,
[IsNew] [bit] NOT NULL,
CONSTRAINT [PK_Pictures] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT [dbo].[Products] ([Id], [Name]) VALUES (66, N'P1')
INSERT [dbo].[Products] ([Id], [Name]) VALUES (67, N'P2')
SET IDENTITY_INSERT [dbo].[EntityPictures] ON
INSERT [dbo].[EntityPictures] ([Id], [EntityId], [PictureId], [DisplayOrder], [IsDefault], [EntityType]) VALUES (1, 66, 1, 0, 0, N'Product')
SET IDENTITY_INSERT [dbo].[EntityPictures] OFF
SET IDENTITY_INSERT [dbo].[Pictures] ON
INSERT [dbo].[Pictures] ([Id], [PictureBinary], [MimeType], [SeoFilename], [AltAttribute], [TitleAttribute], [IsNew]) VALUES (1, 0x, N'image/png', N'seoFilename1', N'altAttribute1', N'titleAttribute1', 0)
INSERT [dbo].[Pictures] ([Id], [PictureBinary], [MimeType], [SeoFilename], [AltAttribute], [TitleAttribute], [IsNew]) VALUES (2, 0x, N'image/png', N'seoFilenameoo', N'altAttributeoo', N'titleAttributeoo', 0)
SET IDENTITY_INSERT [dbo].[Pictures] OFF
我的解决方案基于metal 解决方案:
declare @listOfIDs table (id int);
insert @listOfIDs(id) values(100),(200);
declare @id int=66;
declare @baseUrl varchar(256)='http://localhost/content/images/thumbs/';
select id,name,PictureURL from (select * from products p
join (select ep.EntityId,
concat(@baseUrl
, ep.Id, '_', pt.SeoFilename, '_', l.id, '.',
substring(pt.MimeType, charindex('/', pt.MimeType, 1) + 1,
len(pt.MimeType) - 1)
) as PictureURL
from dbo.EntityPictures ep
join dbo.Pictures pt on pt.Id= ep.PictureId
right join @listOfIDs l on l.id=l.id
) t on 1=1) x
where x.Id=@id