[英]MySQL query for getting data from different table and using it for distance calculations
[英]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_qualification
和educonnect_user_contact
,因此該educonnect_user_contact
將確保id=3
的用戶使用以下字段: type_of_institution
, college
, country
,..(和其他字段)存在於同一用戶的另外兩個表中,但是您需要根據需要從表中選擇哪些字段( Left
, right
考慮所需的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.