0
我有问题。我有3个表,一个带有视频列表,另一个带有类别列表,第三个表告诉我每个视频的分类。 我想列出所有类别,但我需要使用最后一个的缩略图插入每个类别的视频。 该列表必须显示该类别的名称以及插入该类别的最后一个视频的缩略图。我希望我明确自己。SQL选择3个表
- 表
Videos(Id, Name, Description, Duration, Date, Thumbnail, Active)
- 表
Categories(Id, Cat, Active)
- 表
VidCat(Id, Video, Cat)
我试图用表达波纹管,但不起作用。它显示了我所有的缩略图。
SELECT DISTINCT C.[Id], C.Cat, V.[Codigo]
FROM [Categories] AS C
left JOIN [VidCat] AS VC ON C.[Id] = VC.[Cat]
left JOIN [Videos] AS V ON VC.[Video] = V.[Id]
WHERE (C.[Active] = 1)
也试过这个,但是是相同的结果。
SELECT DISTINCT C.[Id], C.Cat, V.[Thumbnail]
FROM [Categories] AS C
left JOIN [VidCat] AS VC ON C.[Id] = VC.[Cat]
left JOIN [Videos] AS V ON VC.[Video] = V.[Id]
WHERE (C.[Active] = 1)
AND (V.[Thumbnail] IN (SELECT distinct [Thumbnail] FROM [Videos] WHERE VC.[Video] = [Id] ORDER BY [Date] DESC))
ORDER BY P.[Id]
非常感谢。
贝托
将'V. [Thumbnail]'条件从'WHERE'移动到'ON'以获得真正的'LEFT JOIN'行为,因为它现在可以得到常规的内部连接结果。 – jarlh
另外,不需要在子查询中选择“DISTINCT”。 – jarlh