2016-10-21 18 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のいずれかであるベルンORバーゼルORゾロトゥルンORアールガウ

umut.funktionは= 'Assistenzarzt' OR = 1 umut.fachgebiet_rheumatologieある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')) 
関連する問題