2010-12-27 10 views
0
SELECT DISTINCT ON 
     (u.user_uuid, u.firstname) 
     u.user_uuid, 
     u.firstname, 
     u.preposition, 
     u.lastname, 
     array_to_string_ex(ARRAY(SELECT email FROM emails WHERE user_uuid = 
u.user_uuid)) as emails, 
     array_to_string_ex(ARRAY(SELECT mobilenumber FROM mobilenumbers WHERE 
user_uuid = u.user_uuid)) as 
mobilenumbers, 
     array_to_string_ex(ARRAY(SELECT c.name FROM targetgroupusers AS tgu 
LEFT JOIN membercategories as mc ON 
mc.targetgroup_uuid = 
tgu.targetgroup_uuid LEFT JOIN 
categories AS c ON mc.category_uuid = 
c.category_uuid WHERE tgu.user_uuid = 
u.user_uuid)) as categories, 
     array_to_string_ex(ARRAY(SELECT color FROM membercategories WHERE 
targetgroup_uuid IN(SELECT 
targetgroup_uuid FROM targetgroupusers 
WHERE user_uuid = u.user_uuid))) as 
colors FROM 
     membercategories AS mc LEFT JOIN 
     targetgroups AS tg ON 
     tg.targetgroup_uuid = mc.targetgroup_uuid LEFT JOIN 
     targetgroupusers AS tgu ON 
     tgu.targetgroup_uuid = tg.targetgroup_uuid LEFT JOIN 
     users AS u ON 
     u.user_uuid = tgu.user_uuid LEFT JOIN 
     emails AS e ON 
     e.user_uuid = u.user_uuid LEFT JOIN 
     mobilenumbers AS m ON 
     m.user_uuid = u.user_uuid WHERE mc.targetgroup_uuid IS NOT NULL AND 
u.user_uuid != 
ANY('{5b1f5ae5-b033-4b02-8bd0-3a9f7f2ccf19}'::UUID[]) 
AND isdeleted = false AND 
     mc.company_uuid = '5edcecd0-0534-11e0-81e0-0800200c9a66' 
     AND (u.firstname ~* 'dir') OR (u.preposition ~* 'dir') OR 
(u.lastname ~* 'dir') OR (e.email ~* 
'dir') OR (m.mobilenumber ~* 'dir') 
     ORDER BY 
    u.firstname ASC 
OFFSET  0 
LIMIT  10 

は、どのように私はまだuser_uuid = 5b1f5ae5-b033-4b02-8bd0-3a9f7f2ccf19で結果を得る来ますか?!?PostgreSQLのSELECTマイナス配列(NOT IN)

答えて

2

ANDORよりも高い優先度を持つためです。

括弧の中にあなたのOR句を囲みます。

AND ((u.firstname ~* 'dir') OR (u.preposition ~* 'dir') OR (u.lastname ~* 'dir') OR (e.email ~* 'dir') OR (m.mobilenumber ~* 'dir')) 
+0

おっと、私は申し訳ありませんが、私はすでにことを、まだdoesntの仕事に変更! =( – Koen

+1

@Koen:「まだ動作しません」というクエリを投稿してもらえますか?一致してはいけないと考えるレコードを投稿しても、それが役立つでしょう。 – Quassnoi