返回多行的Mysql子查询
我试图获得一定纬度和经度范围内的邮政编码,然后使用返回的邮政编码拉取给定区域内的所有邮件。纬度和经度的数字是变量,但出于测试目的,它们是硬数字。 有人能给我指引正确的方向来完成这项工作吗 查询#1-works选择post返回多行的Mysql子查询,mysql,subquery,Mysql,Subquery,我试图获得一定纬度和经度范围内的邮政编码,然后使用返回的邮政编码拉取给定区域内的所有邮件。纬度和经度的数字是变量,但出于测试目的,它们是硬数字。 有人能给我指引正确的方向来完成这项工作吗 查询#1-works选择post SELECT user_id, session, zip, price, city, state, post_id, category, shortDesc, fpi FROM post ORDER BY post.post_id DESC; 查询#2-works选择区域
SELECT user_id, session, zip, price, city, state, post_id, category, shortDesc, fpi
FROM post ORDER BY post.post_id DESC;
查询#2-works选择区域中的邮政编码
SELECT count(value) as duplicate, value
from (SELECT DISTINCT zipcode as value from zip
WHERE latitude BETWEEN 27.747 AND 28.147
UNION all
SELECT DISTINCT zipcode FROM zip
WHERE longitude BETWEEN -82.657 AND -82.257)
as tbl group by value having count(value) > 1;
作为子查询的查询
尝试:失败
SELECT user_id, session, zip, price, city, state, post_id, category, shortDesc, fpi
FROM post
WHERE zip = (
SELECT count(value) as duplicate ,value
from (SELECT DISTINCT zipcode as value from zip
WHERE latitude BETWEEN 27.747 AND 28.147
UNION all SELECT DISTINCT zipcode FROM zip
WHERE longitude BETWEEN -82.657 AND -82.257)
as tbl group by value having count(value) > 1)
ORDER BY post.post_id DESC;
错误#1241-操作数应包含1列
下一次尝试:失败
SELECT user_id, session, zip, price, city, state, post_id, category, shortDesc, fpi
FROM post WHERE zip = (select distinct zipcode from zip
where latitude between 27.747 AND 28.147)
IN ( select distinct zipcode from zip
where longitude between -82.657 AND -82.257);
1242-子查询返回超过1行
下一次尝试:失败
SELECT user_id, session, zip, price, city, state, post_id, category, shortDesc, fpi
FROM post
WHERE zip = ANY (
select distinct zipcode from zip
where latitude between 27.747 AND 28.147)
IN ( select distinct zipcode from zip
where longitude between -82.657 AND -82.257);
1064-您的SQL语法有错误 这应该行得通:
SELECT user_id, session, zip, price, city,
state, post_id, category, shortDesc, fpi
FROM post WHERE zip in (SELECT DISTINCT zipcode as value
from zip
WHERE latitude BETWEEN 27.747 AND 28.147
and longitude BETWEEN -82.657 AND -82.257)
ORDER BY post.post_id DESC;
我不知道你想要什么 试试这个
select user_id, session, zip, price, city, state, post_id, category, shortDesc, fpi
FROM post WHERE zip in
(SELECT DISTINCT zipcode from zip where
(latitude BETWEEN 27.747 AND 28.147) AND (longitude BETWEEN -82.657 AND -82.257))
这似乎对我拥有的数据集有效。我只是很难理解为什么不必在和的两侧指定它,以便获得在两个数据集中都显示的值。不理解这个问题的答案很好。谢谢