我有一个查询,其中包含一个ID,即第二个表中的多行引用。我需要连接两个表,但只选择第二个表中某列为MIN的列。请注意,我还需要从tableb中选择其他列,而不仅仅是最小值。我需要引用相对于该最小值的其他列。
Psuedo代码由于代码和数据保密。
SELECT tablea.id, tableb.id, tableb.name FROM tablea
LEFT JOIN ( SELECT * FROM tableb WHERE `id` = Minimum )
Microsoft SQL Server
答案 0 :(得分:1)
你可以试试这个......
SELECT tablea.id, tableb.id, tableb.name
FROM tablea a, tableb b
WHERE a.id = b.id AND b.amt = (SELECT MIN(z.amt) FROM tableb z
WHERE z.id = a.id )
答案 1 :(得分:0)
SELECT a.id, b.id, b.name
FROM tablea a
LEFT JOIN ( SELECT *, row_number() over(partition by id order by dollar_amt_column) as rn
FROM tableb ) b
on a.id = b.id and b.rn = 1
假设您需要minimum
列的id
值,您可以将row_number
和join
用于其他表。