SQL中多个WHERE语句中的子查询

Poiuytrez

我有两个表:

Place
-id
-latitude
-longitude

Event
-id
-user_id
-latitude
-longitude
-radius

我需要将一直到位的user_id列表作为输出。我不确定我可以使用子查询来做到这一点,因为我必须同时检查两个参数:纬度(+-半径)和经度(+-半径)。

承认半径始终为1以简化问题,它给出了以下查询:

SELECT * FROM event WHERE 
latitude > (SELECT latitude-1 FROM place) AND
latitude < (SELECT latitude+1 FROM place) AND
longitude > (SELECT longitude-1 FROM place) AND
longitude < (SELECT latitude+1 FROM place) 

失败是因为子查询不能返回多个行。正确的做法是什么?

underscore_d

怎么办呢(由于我没有MySQL或数据来测试这一点,所以我应该在它周围加上吓人的引号。)

select distinct
    place.id,
    user_id
from
    event
    inner join place on
        event.latitude between
            place.latitude - event.radius
            and place.latitude + event.radius
        and event.latitude between
            place.longitude - event.radius
            and place.longitude + event.radius;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle SQL:where子句中的Case语句返回错误“单行子查询返回多个行”

来自分类Dev

AND语句中的SQL子查询

来自分类Dev

AND语句中的SQL子查询

来自分类Dev

在where语句中替换子查询

来自分类Dev

WHERE IN 语句中的多个选择查询

来自分类Dev

在SQL中的where子句中的语句之间获取多个列

来自分类Dev

T SQL选择语句中的子查询

来自分类Dev

SQL查询的WHERE子句中的CASE语句

来自分类Dev

Android SQL语句中的多个Where子句

来自分类Dev

在if语句中从数组中查询多个值

来自分类Dev

在where语句中使用子查询进行查询

来自分类Dev

LINQ中where语句中的多个条件

来自分类Dev

SQL Server:如何提高WHERE子句中具有多个CTE和子查询的查询的性能

来自分类Dev

WHERE子句中的HIVE SQL子查询

来自分类Dev

在 where 子句中使用子查询更新语句

来自分类Dev

Select语句中的子查询

来自分类Dev

如何在SQL语句的Select子句中引用子查询

来自分类Dev

SQL UPDATE语句中涉及子查询的错误

来自分类Dev

WHERE子句中具有多个条件的SQL语句的语法

来自分类Dev

WHERE子句中具有多个条件的SQL语句的语法

来自分类Dev

select语句中的子查询如何在Oracle中工作

来自分类Dev

oracle中where子句的case语句中传递多个值

来自分类Dev

WHERE子句中的多个查询

来自分类Dev

WHERE中的SQL查询中的CASE语句

来自分类Dev

子查询中where子句中的两列

来自分类Dev

非聚集过滤索引中 WHERE 子句中的子查询

来自分类Dev

子查询中的SQL Group By语句

来自分类Dev

SQL语句where子句中的case语句

来自分类Dev

在SELECT语句中对SUM使用子查询