2016-10-21 2 views
0

다음 쿼리를 실행하면 결과가 나타나지만 나에게 맞지 않습니다. 그래서 어딘가에 실수가 있어야합니다. 쿼리가 올바른 결과를 반환하지 않습니다.

SELECT * 
FROM fe_users 
INNER JOIN user_managementsg_user_table AS umut ON 
     fe_users.uid = umut.fe_id 
    AND fe_users.city = 'Bern' 
     OR fe_users.city = 'Basel' 
     OR fe_users.city = 'Solothurn' 
     OR fe_users.city = 'Aargau' 
    AND umut.funktion = 'Assistenzarzt' 
     OR umut.fachgebiet_rheumatologie = 1 
     OR umut.taetigkeitsfeld = 'Praxis' 

내가 원하는 무엇인가 :

fe_users.city 베른이나 바젤 또는 졸로 투른 또는 아르 가우 중 하나입니다

어느 umut.funktion = 'Assistenzarzt'OR umut.fachgebiet_rheumatologie = 1 OR입니다 umut.taetigkeitsfeld = 'Praxis'

위의 쿼리에서 city 열의 일부 값은 내가 정의한 4 개의 도시와 다릅니다. 내 검색어에 어떤 문제가 있습니까?

+4

'('Bern ','Basel ', ...)'에 fe_users.city가 있습니까? 또는 OR 주위에 괄호를 넣으십시오. – jarlh

+1

가독성을 위해 혼자서 괄호를 추가해야합니다. – Jens

+0

이 RDBMS는 무엇입니까? 태그를 추가하여 mysql, postgresql, sql-server, oracle 또는 db2 중 어느 것을 사용하는지 지정하십시오. –

답변

1
SELECT * FROM fe_users 
INNER JOIN user_managementsg_user_table AS umut 
ON fe_users.uid = umut.fe_id 
AND (fe_users.city in ('Bern','Basel','Solothurn','Aargau') 
AND (umut.funktion = 'Assistenzarzt' OR umut.fachgebiet_rheumatologie = 1 OR umut.taetigkeitsfeld = 'Praxis') 
1

시도해보십시오.

SELECT * 
    FROM fe_users 
      INNER JOIN user_managementsg_user_table AS umut ON fe_users.uid = umut.fe_id 
                  Where fe_users.city IN('Bern' 
                   ,'Basel' 
                   ,'Solothurn' 
                   , 'Aargau') 
                   AND (umut.funktion in('Assistenzarzt') OR umut.fachgebiet_rheumatologie = 1 OR umut.taetigkeitsfeld = 'Praxis')) 
관련 문제