【发布时间】:2020-08-06 03:27:46
【问题描述】:
我正在加入这两个表,我想发送Test 的视图及其图像。
-
测试
- 名称(VARCHAR(255))
- TestId (INT)
- 开始时间 (DATETIME2(7))
- 状态 (VARCHAR(255))
-
图片
- ImageId (INT)
- TestId (INT)
- 图像(VARBINARY(MAX))
现在我正在这样做:
SELECT Name, t.TestId, StartTime, Status, Image
FROM [Test] t
LEFT JOIN [Images] i ON i.TestId = t.TestId
我不喜欢这里的是,我有来自同一个测试的多行但有不同的图像。有没有一种方便的方法可以只返回每个测试的一行及其图像?
我的图片不是很重(最大 100KB),而且每次测试我没有很多图片(最大 10 个)。这是我的想法:
- 这可能听起来很疯狂,但也许在 SQL Server 中,有一种方法可以将
Images 转换为图像列表作为VARBINARY(MAX) - 我可以在视图中有 10 列(image1、image2...),如果它们存在,则用图像填充它们(非空)
我对这些解决方案有点坚持,因为我对 SQL 了解不多,但我仍在尝试。你看到另一种方法吗?如果没有,您能否就如何实现 1. 或 2. 提供有用的建议。
【问题讨论】:
标签: sql-server tsql join group-by varbinarymax