如何使用IN close两次?

时间:2018-11-10 21:40:23

标签: mysql select where

我有一个包含RegionID和坐标的区域表。

区域表: 区域编号 RegionPolygonCordinates

我有ListingRegion表,其中具有RegionListingID,ListingID和REgionID,这是多对多表。

ListingRegion表: RegionListingID 区域编号 ListingID

首先,我需要按位置读取RegionID。 这样做如下:

SELECT REGION_ID FROM region WHERE CONTAINS(REGION_POLYGON, point('45.512573', '-122.661276')

然后我需要获取每个RegionID的ListingID。

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

以上查询无效。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这是我的错误。

正确的语法如下:

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