mysql多重内部连接复杂性

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

我有这个疑问。这似乎给我带来了麻烦。如果我去掉第三个表约束,它就会工作。但我需要第三个表格来完善我正在进行的搜索。我的问题是它不会给我一个错误,但它也不会产生结果,因为它应该产生至少1个我在数据库中拥有的数据

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
,为您的设置选择合适的加入(内部、左侧等)。是的,我有与我想要达到的目标相匹配的条件,只是正确地获取查询对我来说是不正常的。不,上面的没有加入,但是另一个类似的查询,我尝试了一个,没有产生任何相关的结果,并且大部分都加入了。