本文介绍了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 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!