MySQL 多个内部连接与 Where 子句 [英] MySQL multiple Inner Join with Where clause

查看:81
本文介绍了MySQL 多个内部连接与 Where 子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 mysql 有一点问题.查询如下:

i have a little problem with mysql. query is follow:

SELECT u.user_id,u.gender, ua.age,u.name,u.isonline,dot.profile_image_no FROM user_table AS u
INNER JOIN user_answers_table AS ua ON u.user_id = ua.user_id
INNER JOIN data_one_table AS dot ON dot.user_id = u.user_id
INNER JOIN user_detail_table AS udt ON udt.user_id = u.user_id
WHERE u.isregistrationcomplete='1' AND u.isactive='1' AND u.gender = '0' AND ua.age >= '20' AND ua.age <= '24' AND udt.lookingfor = '1' OR udt.lookingfor = '3';

我只想获得 u.gender = '0' 用户,但该查询返回给我 u.gender = '1' 那么问题出在哪里?

i want to get only u.gender = '0' users but that query return to me with u.gender = '1' so where is the problem?

查询结果:

user_id  gender     age  name         isonline  profile_image_no  
-------  ------  ------  -----------  --------  ------------------
    62       0      29  Wqasaasd            1                   1
    93       1      28  Sadasda             1                   1
    131       0      26  Wedsas              1                   1
    155       0      91  Wwsfwdf             1                   1
    173       0      23  Yirmi30             1                   1
    220       0      20  Fjalekalimi         1                   1
    232       0      20  Seeemani            1                   1
    236       0      21  Mesut               1                   1
    238       0      89  23wdsca             1                   1
    247       0      23  11eqwe              1                   1
    252       0      24  Workhard            1                   1
    253       0      25  Sdsdg               1                   1
    343       1      25  Emily               1                   1

推荐答案

将您的 OR 放在括号内,然后重试!

Stick your OR inside a bracket and try again!

SELECT u.user_id,u.gender, ua.age,u.name,u.isonline,dot.profile_image_no FROM user_table AS u
INNER JOIN user_answers_table AS ua ON u.user_id = ua.user_id
INNER JOIN data_one_table AS dot ON dot.user_id = u.user_id
INNER JOIN user_detail_table AS udt ON udt.user_id = u.user_id
WHERE u.isregistrationcomplete='1' 
AND u.isactive='1' 
AND u.gender = '0' 
AND ua.age >= '20' 
AND ua.age <= '24' 
AND (udt.lookingfor = '1' OR udt.lookingfor = '3');

这篇关于MySQL 多个内部连接与 Where 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆