mysql - 我怎么能使用 IN close 两次?
问题描述
我有具有 RegionID 和坐标的区域表。
区域表:RegionID RegionPolygonCordinates
我有 ListingRegion 表,它有 RegionListingID、ListingID 和 REgionID,这是多对多表。
ListingRegion 表:RegionListingID RegionID ListingID
首先,我需要按位置读取 RegionID。这是按如下方式完成的:
SELECT REGION_ID FROM region WHERE CONTAINS(REGION_POLYGON, point('45.512573', '-122.661276')
然后我需要为每个 RegionID 获取列表 ID。
SELECT listings.* FROM listing_region,listings
WHERE listings.LISTING_ID IN (SELECT listing_region.LIST_REGION_LISTING_ID IN (SELECT listing_region.LIST_REGION_REGION_ID IN (SELECT REGION_ID FROM region WHERE CONTAINS(REGION_POLYGON, point('45.512573', '-122.661276')))))
上面的查询不起作用。任何帮助表示赞赏。
解决方案
这是我的错误。
正确的语法如下:
SELECT listings.* FROM listings
WHERE listings.LISTING_ID IN(SELECT listing_region.LIST_REGION_LISTING_ID FROM listing_region WHERE listing_region.LIST_REGION_REGION_ID IN (SELECT REGION_ID FROM region WHERE CONTAINS(REGION_POLYGON, point('45.512573', '-122.661276'))))