首页 > 解决方案 > 我怎么能使用 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'))))) 

上面的查询不起作用。任何帮助表示赞赏。

标签: mysqlselectwhere

解决方案


这是我的错误。

正确的语法如下:

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'))))

推荐阅读