Re: Complex query help please
От | Josh Berkus |
---|---|
Тема | Re: Complex query help please |
Дата | |
Msg-id | web-514821@davinci.ethosmedia.com обсуждение исходный текст |
Ответ на | Complex query help please ("Glenn MacGregor" <gtm@oracom.com>) |
Список | pgsql-sql |
Glenn, > I am new to sql and have the need for a complex query. I have > figured out how to do it in two queries but I would like to get it > down to one. I will give you my queries and hopefully some can give > me some assistance. > Thanks Easy. Take your second query, and everywhere you have "ttable1" replace it with a sub-select which is the first query. Thus: Query 1: create temp table ttable1 as select xpressuser.username, xpressvimpermission.commandaccess, xpressvimpermission.eventaccess from xpressvim left join xpressvimpermission using (vimid) left join xpressgroup using (groupid) left join xpressuser using (groupid) where xpressvim.vimname = 'testvim2'; creates a temp table. select xpressuser.username, xpressvimpermission.commandaccess, xpressvimpermission.eventaccess from xpressvim left join xpressvimpermission using (vimid) left join xpressgroup using (groupid) left join xpressuser using (groupid) where xpressvim.vimname = 'testvim2' union select xpressuser.username, xpressgroup.commandaccess, xpressgroup.eventaccess from xpressgroup left join xpressuser using (groupid) where xpressuser.username not in (select xpressuser.username from xpressvim left join xpressvimpermission using (vimid) left join xpressgroup using (groupid) left join xpressuser using (groupid) where xpressvim.vimname = 'testvim2') and (xpressgroup.commandaccess != 'n' or xpressgroup.eventaccess != 'f'); You can play with different query structures (WHERE NOT EXISTS, etc) for performance reasons. Certainly you should save the above as a view to get optimization. ALso, make sure that you're using Postgres 7.1.0 or above. -Josh ______AGLIO DATABASE SOLUTIONS___________________________ Josh Berkus Complete informationtechnology josh@agliodbs.com and data management solutions (415) 565-7293 for law firms, small businesses fax 621-2533 and non-profit organizations. San Francisco
В списке pgsql-sql по дате отправления: