我有一个数据库,其中有[Session]
和[SessionAsset]
表。
SessionAsset
有一个我要获取的ThumbnailUrl
。
有两个SessionAssets
与一个Session
相关联。
仅服用其中ThumbnailUrl
个中的1个是最好的方法?如果我将Session
上的SessionAsset
与SessionId
(主键)一起加入,那么将有重复的行。
答案 0 :(得分:1)
假设SessionAssets
中的两个记录都具有相同的ThumbnailUrl
,一种解决方案是使用选择不同SessionId/ThumbnailUrl
元组的子查询。
SELECT s.*, sa.ThumbnailUrl
FROM Session s
INNER JOIN ( -- or maybe LEFT JOIN ?
SELECT DISTINCT SessionID, ThumbnailUrl FROM SessionAssets
) sa ON sa.SessionId = s.SessionID
如果ThumbnailUrl
不同,而您只想获得其中之一,那么您可能想使用聚合:
SELECT s.*, sa.ThumbnailUrl
FROM Session s
INNER JOIN (
SELECT SessionID, MAX(ThumbnailUrl) ThumbnailUrl
FROM SessionAssets
GROUP BY SessionID
) sa ON sa.SessionId = s.SessionID
答案 1 :(得分:0)
通过[SessionId]
加入两个表,并使用DISTINCT
关键字消除重复的[ThumbnailUrl]
。
SELECT DISTINCT ThumbnailUrl
FROM SessionAsset sa
JOIN Session s on s.SessionId = sa.SessionId