T-SQL内连接是内连接的第一个结果

use*_*365 3 sql sql-server

我有2个表,Property和PropertyImage.1属性有多个图像

我需要获得所有属性,每个属性只需要1个PropertyImage.

有谁知道如何实现这一目标?

Property: PropertyID, Name
PropertyImage: PropertyImageID, PropertyID, Source, Type
Run Code Online (Sandbox Code Playgroud)

谢谢

Leo*_*ons 6

下面是一个示例,其中选择了Property中的所有记录以及PropertyImage中的最后一条记录,假设id列是标识列,而最后一条记录是您需要的记录.您需要根据确切的列名称和要求进行调整.

SELECT p.PropertyID, p.Name, pi.PropertyImageID, pi.Source, pi.Type 
  FROM Property p 
       INNER JOIN PropertyImage pi
         ON pi.PropertyImageId = (SELECT MAX(sub.PropertyImageId) 
                                    FROM PropertyImage sub
                                   WHERE sub.PropertyId = p.PropertyId)
Run Code Online (Sandbox Code Playgroud)

编辑:在select中添加了列名

  • @ user441365它是有效的SQL,它适用于我.我甚至创建了一些空表并运行了那个确切的查询 - 它有效.你必须把它复制错了. (2认同)