簡體   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