ST_Within
Name
ST_Within — Tests if no points of A lie in the exterior of B, and A and B have at least one interior point in common.
Synopsis
    
     boolean
     
      ST_Within
     
     (
    
    geometry
    
     A
    
    , geometry
    
     B
    
    
     )
    
    ;
   
Description
Returns TRUE if geometry A is completely inside geometry B. For this function to make sense, the source geometries must both be of the same coordinate projection, having the same SRID. It is a given that if ST_Within(A,B) is true and ST_Within(B,A) is true, then the two geometries are considered spatially equal.
A subtlety of this definition is that the boundary of a geometry is not within the geometry. This means that lines and points lying in the boundary of a polygon or line are not within the geometry. For further details see Subtleties of OGC Covers, Contains, Within . (The ST_CoveredBy predicate provides a more inclusive relationship).
   ST_Within is the inverse of
   
    ST_Contains
   
   .
        So,
   
    ST_Within(A,B) = ST_Contains(B,A)
   
   .
  
       
      | 
     |
| 
       
       This function automatically includes a bounding box comparison
that makes use of any spatial indexes that are available on the geometries.
        To avoid index use, use the function
         | 
    
Performed by the GEOS module
Enhanced: 2.3.0 Enhancement to PIP short-circuit for geometry extended to support MultiPoints with few points. Prior versions only supported point in polygon.
       
      | 
     |
| 
       
       Enhanced: 3.0.0 enabled support for
         | 
    
       
      | 
     |
| 
       Do not use this function with invalid geometries. You will get unexpected results.  | 
    
NOTE: this is the "allowable" version that returns a boolean, not an integer.
   
    
   
   This method implements the
   
    OGC Simple Features
 Implementation Specification for SQL 1.1.
   
   s2.1.1.2 // s2.1.13.3
      - a.Relate(b, 'T*F**F***')
  
   
    
   
   This method implements the SQL/MM specification. SQL-MM 3: 5.1.30
  
Examples
--a circle within a circle
SELECT ST_Within(smallc,smallc) As smallinsmall,
  ST_Within(smallc, bigc) As smallinbig,
  ST_Within(bigc,smallc) As biginsmall,
  ST_Within(ST_Union(smallc, bigc), bigc) as unioninbig,
  ST_Within(bigc, ST_Union(smallc, bigc)) as biginunion,
  ST_Equals(bigc, ST_Union(smallc, bigc)) as bigisunion
FROM
(
SELECT ST_Buffer(ST_GeomFromText('POINT(50 50)'), 20) As smallc,
  ST_Buffer(ST_GeomFromText('POINT(50 50)'), 40) As bigc) As foo;
--Result
 smallinsmall | smallinbig | biginsmall | unioninbig | biginunion | bigisunion
--------------+------------+------------+------------+------------+------------
 t            | t          | f          | t          | t          | t
(1 row)