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