【发布时间】:2015-04-27 11:35:44
【问题描述】:
希望你能帮忙...
我有两个 SQL 表,一个有用户,另一个有我需要合并到 C# 数据表中的用户位置。
加入它们的基本查询不是问题,问题是用户可能多次出现在位置表中。在这种情况下,我需要将每个位置传递给一行,而不是使用多个位置多次列出用户。
它是 ADO.NET 邻近搜索的一部分,因此当前查询代表...
DECLARE @lat float
DECLARE @lon float
SET @lat = @varLat
SET @lon = @varLon
DECLARE @point geography = geography::Point(@lat, @lon, 4326);
DECLARE @distance float
SET @distance = @varDistance
SELECT t1.locationId, t1.city, t2.[firstName]+' '+[lastName] as name
FROM _Locations t1 INNER JOIN _Users t2 ON t2.userId = t1.userId
WHERE @point.STDistance(centerPoint) <= @distance
我觉得 LINQ 可能会有所帮助,但它不是我以前使用过的东西。
【问题讨论】:
-
哪个 dbms? (此处需要非 ANSI SQL...)
-
谢谢蒂姆,但如果我理解正确,那只有在我指定 Id 来连接值时才有效。每当重复 id 时,我都需要它来执行此操作。