2012-01-10 17 views
0

我們正在開發的門戶網站,如社會網絡站點有不同的概念......但這樣做,我們在mysql中查詢得到strucked建議連接... 我們正在試圖採取用戶與similat數據...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運營商返回的所有用戶..its邏輯這些操作會給我know..but對於這個問題,我需要不同的建議,這將工作effectively..or其他查詢可以與任何OT來改變輸出她的具體操作員?

回答

0

您並不需要所有這些WHERE IN條件。你只需要where educonnect_user.user_id = 3因爲educonnect_user表與其他兩個表educonnect_user_qualificationeduconnect_user_contact加入,因此加盟將確保爲用戶提供id=3領域:type_of_institutioncollegecountry,...(和其他字段)是存在於其他兩個表爲同一個用戶,但是你需要關心你這取決於你想從你的表是否Left選擇,right哪些領域需要什麼類型的聯接。所以我覺得下面的查詢你正在尋找:

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 
+0

沒有mr.MGA的USER_ID = 3的樣品one..i想從數據USER_ID = 3,並從這些數據我想在數據庫類似的數據全部匹配的用戶... – Pushparaj 2012-01-11 05:46:48

0

希望這將有助於::

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) 
+0

先生sashi這是隻返回USER_ID = 3個values..i希望USER_ID = 3個的記錄數據進行匹配 – Pushparaj 2012-01-11 05:49:40

+0

@Pushparaj中的所有用戶:有編輯查詢,查詢並在需要更改時恢復 – 2012-01-12 06:29:21

相關問題