SELECT GARAGE, MAKE
FROM NEIGHBORHOOD_TABLE A
JOIN VEHICLES_TABLE B ON B.MAKE = A.MAKE DISTINCT BY B.MAKE
WHERE A.ZIPCODE = MY_ZIP_CODE
;
现在我想返回我的邮政编码中所有带有福特品牌的车库。现在Vehicles-Table可以在连接中有多个FORD品牌的型号,但我只想返回FORD品牌的一行,而不是所有型号FUSION、RANGER F150型......这可能是一个糟糕的示例,但我的想法是,我希望从表A中返回多个与表B匹配的行,但是表B可能有多个与表A匹配的行但我只需要1行,通过B. MAKE区分。
这是一个DB2 SQL数据库。如果你能弄清楚我在问什么,谢谢。
2条答案
按热度按时间ckocjqey1#
我能想到的最简单的解决方案是使用
ROW_NUMBER()
。请注意,当每个make有多个行时,您需要添加一个排序标准来决定选择哪一行;我添加了
order by b.id
,但您应该根据您的标准进行更改。或者,您可以使用横向查询来为每个组获取一行。
tyu7yeag2#
试试看: