地方表如何在查詢也包含地理數據時使用連接表,在多個ID查詢中?
- PlaceId PK
- 名稱
- 的GeoPoint(GeoPoint對象類型)
- 等...
PlaceCats表(連接表)
- PlaceId PK FK
- CATID PK FK
PlaceCategories表
- CATID PK
- 名稱
- 等...
這裏是我的查詢, 至返回的地方,在PlaceCats表中輸入條目(由一系列catIds),並在Lat/Lng值的25km範圍內。
SELECT Places.*
FROM Places
INNER JOIN PlaceCats
ON Places.PlaceId = PlaceCats.PlaceId
WHERE PlaceCats.CatId IN (2,3,4,5)
AND Places.GeoPoint.STDistance(geography::Point(35.75094975999387, 139.39780220389366, 4326)) < ((25 * 1000))
ORDER BY Places.Name ASC
它返回的地方,但我需要在SELECT後添加DISTINCT ...顯然你選擇地理數據時不能使用DISTINCT。我需要確保我沒有多次獲得同一個地方(因爲他們在連接表中可以有多個條目)。
更新
當我插入一個地方到地方臺,該GeoPoint的設置,像這樣:
SqlGeography.Point(sentPlace.Lat.Value, sentPlace.Lng.Value, 4326);
感謝格式編輯cularis,現在更容易閱讀查詢。 – Chaddeus