mysql多重内部连接复杂性
我有这个疑问。这似乎给我带来了麻烦。如果我去掉第三个表约束,它就会工作。但我需要第三个表格来完善我正在进行的搜索。我的问题是它不会给我一个错误,但它也不会产生结果,因为它应该产生至少1个我在数据库中拥有的数据mysql多重内部连接复杂性,mysql,sql,join,Mysql,Sql,Join,我有这个疑问。这似乎给我带来了麻烦。如果我去掉第三个表约束,它就会工作。但我需要第三个表格来完善我正在进行的搜索。我的问题是它不会给我一个错误,但它也不会产生结果,因为它应该产生至少1个我在数据库中拥有的数据 SELECT loc.*, a.firstname, a.lastname, a.profileimg, (((acos(sin((37.2790669*pi()/180)) * sin((`latitude`*pi()/180
SELECT loc.*,
a.firstname,
a.lastname,
a.profileimg,
(((acos(sin((37.2790669*pi()/180)) * sin((`latitude`*pi()/180))+cos((37.2790669*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((-121.874722 - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance`
FROM geo_locations loc
JOIN memb_Info a ON a.mID = loc.mID
WHERE a.firstname LIKE 'Lisa%'
AND loc.primaryAddress = '1'
AND memb_x.xName LIKE '%Monkey'
ORDER BY `distance` ASC
如果我删除
AND memb_x.xName LIKE '%Monkey'
我得到的结果没问题,但是memb_x表有一个列xName,它是我想应用于上面的查询的某种过滤器,但我似乎不知道该如何处理它。我试图正确地进行内部连接,但这并没有给我带来任何好处,这导致了重复的结果,结果实际上并没有涵盖我想要达到的目标
所以把它分解。我想做的是对我的成员进行径向搜索,这样他们就可以看到该区域中的其他成员。。这一点最初源于geo_位置,我试图从返回的id中获取信息,以便我可以为用户firstname lastname等内部加入memb_Info表。。所有表之间的一个连接器是mID,它是成员id。现在,第三个表上的这个成员id也有具有类似兴趣或筛选器的用户,因此我想根据这些筛选器精简我的结果。这就是我没有正确构造查询的地方,需要帮助修复它。我不确定你的意思,但你需要的是这样的:
SELECT loc.*,
a.firstname,
a.lastname,
a.profileimg,
(((acos(sin((37.2790669*pi()/180)) * sin((`latitude`*pi()/180))+cos((37.2790669*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((-121.874722 - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance`
FROM geo_locations loc
JOIN memb_Info a ON a.mID = loc.mID
JOIN memb_x x ON x.mID=loc.mID
WHERE a.firstname LIKE 'Lisa%'
AND loc.primaryAddress = '1'
AND x.xName LIKE '%Monkey'
ORDER BY `distance` ASC
您确定有符合条件的数据吗<代码>类似于“%Monkey”意味着字符串必须以“Monkey”结尾。您的查询根本没有加入
memb_x
表-它应该返回一个错误并且首先不工作?您应该能够添加一个??在memb_x.mID=a.mID上加入memb_x
,为您的设置选择合适的加入(内部、左侧等)。是的,我有与我想要达到的目标相匹配的条件,只是正确地获取查询对我来说是不正常的。不,上面的没有加入,但是另一个类似的查询,我尝试了一个,没有产生任何相关的结果,并且大部分都加入了。