Php mysql查询,用于从不同表中获取建议连接的相关数据
我们正在开发具有不同概念的类似门户网站的社交网站…但为了实现建议的连接,我们在mysql查询中遇到了麻烦。。。 我们正在尝试使用相似数据的用户Php mysql查询,用于从不同表中获取建议连接的相关数据,php,mysql,social-networking,Php,Mysql,Social Networking,我们正在开发具有不同概念的类似门户网站的社交网站…但为了实现建议的连接,我们在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.use
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个表..但问题是无论我在哪里给出
和操作符,都不会生成结果,如果我给出或操作符,它会返回所有用户..这是这些操作符将给出我知道的输出的逻辑..但是对于这个问题,我需要有效的不同建议..或者查询可以是使用任何其他特定的操作员进行更改???在
条件下,您不需要所有这些。您只需要其中educonnect\u user.user\u id=3
,因为educonnect\u user
表与其他两个表educonnect\u user\u qualification
和educonnect\u user\u contact
连接,因此该连接将确保对于id=3
的用户,字段:type\u of\u institution,学院
,国家
,…(和其他字段)存在于同一用户的其他两个表中,但您需要关心需要何种类型的联接,这取决于您要从表中选择的字段是左
,右
。因此,我认为以下问题是您所寻找的:
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)
不,mr.MGA,用户\u id=3是示例一..我想从用户\u id=3获取数据,从该数据中,我希望所有匹配的用户在db中具有相似的数据…sashi先生,这只返回用户\u id=3值..我希望所有匹配用户\u id=3记录的用户data@Pushparaj:已编辑查询,请检查并在需要更改时还原