2014-01-29 8 views
0

나는 mysql에 약간의 문제가있다. 쿼리는 다음과 같습니다MySQL 다중 내부 Where join with Where 절

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'; 

을 난 단지 = '0'사용자 u.gender하고 싶지만 어디 문제는 u.gender = '1'과 그다지 쿼리 반환입니까?

쿼리 결과 :

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 

답변

3

는 브라켓 내부에 OR 스틱하고 다시 시도하십시오!

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

덕분에이 쿼리는 내 문제를 해결 – Mesuti

2

나쁜 논리적 구문 :

AND (udt.lookingfor = '1' OR udt.lookingfor = '3');