Andreas Joseph Krogh wrote:

> Any idea why this works:
> 
> SELECT distinct(g.groupname), g.id, g.p_id FROM onp_group g, 
> onp_group g2
> WHERE g.id IN(SELECT g2.id UNION SELECT group_id FROM 
> onp_group_children WHERE 
> child_id = g2.id)
> AND g2.id IN(1,2,109,105, 112);
> 
> And not this:
> 
> SELECT g.id, g.p_id, distinct(g.groupname) FROM onp_group g, 
> onp_group g2
> WHERE g.id IN(SELECT g2.id UNION SELECT group_id FROM 
> onp_group_children WHERE 
> child_id = g2.id)
> AND g2.id IN(1,2,109,105, 112);

Distinct is an SQL keyword, not a function.  The former is exactly equivalent to

SELECT DISTINCT g.groupname, g.id, .... FROM ....

except that the first field is inside a (trivial) expression that makes it look 
like a function call.

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to