繁体   English   中英

mysql查询从不同的表中获取相关数据以获得建议的连接

[英]mysql query for getting related data from different table for suggested connections

我们正在开发具有不同概念的类似于社交网站的门户...但是为了进行建议的连接,我们在mysql查询中感到震惊...我们正试图吸引具有类似数据的用户...

SELECT u.* 
    FROM educonnect_user u 
    LEFT OUTER JOIN  educonnect_user_qualification q ON u.id = q.user_id 
    LEFT OUTER  JOIN educonnect_user_contact a1 ON u.id = a1.user_id 
WHERE q.type_of_institution in 
        (
            SELECT type_of_institution 
            FROM educonnect_user_qualification qi 
            WHERE qi.user_id = 3
         ) 
      AND q.college in 
         (
             select college 
             from educonnect_user_qualification qc 
             where qc.user_id = 3
          ) 
      AND q.country in 
          (
             select country 
             from educonnect_user_qualification qco 
             where qco.user_id = 3
          ) 
      AND a1.country in 
          (
             select country 
             from educonnect_user_contact cc 
             where cc.user_id = 3
          ) 
      AND a1.state in 
          (
             select state 
             from educonnect_user_contact cs 
             where cs.user_id = 3
          )

像这样我要联接10个表..但是问题是我给AND运算符的地方都没有生成结果,如果我给OR运算符,它将返回所有用户..其逻辑,这些运算符将给出我知道的输出..但是对于这个问题我需要可以有效工作的不同建议。否则,可以使用任何其他特定运算符来更改查询???

您不需要所有这些WHERE IN条件。 您只需要where educonnect_user.user_id = 3因为educonnect_user表与其他两个表educonnect_user_qualificationeduconnect_user_contact ,因此该educonnect_user_contact将确保id=3的用户使用以下字段: type_of_institutioncollegecountry ,..(和其他字段)存在于同一用户的另外两个表中,但是您需要根据需要从表中选择哪些字段( Leftright考虑所需的Left 所以我认为以下查询您在寻找什么:

SELECT u.* 
FROM educonnect_user u 
LEFT OUTER JOIN  educonnect_user_qualification q ON u.id = q.user_id 
LEFT OUTER  JOIN educonnect_user_contact a1 ON u.id = a1.user_id 
where u.user_id = 3

希望这会有所帮助::

SELECT u.* 
    FROM educonnect_user u 
    LEFT OUTER JOIN  educonnect_user_qualification q ON u.id = q.user_id 
    LEFT OUTER  JOIN educonnect_user_contact a1 ON u.id = a1.user_id 
    left join educonnect_user_qualification qi on (q.type_of_institution=qi.type_of_institution and qi.user_id=3)
  left join educonnect_user_qualification qc  on (q.college=qc.college and qc.user_id=3)
  left join educonnect_user_qualification qco on (q.country=qco.country and qco.user_id=3)
  left join educonnect_user_contact cc on (a1.country=cc.country and cc.user_id=3)
  left join educonnect_user_contact cs on (a1.state=cs.state and cs.user_id=3)  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM