Yup! Maybe I haven't explained me correct, but yes, that's what I wan't. This is 
because as soon as a project is NOT inheriting, then all of it's childs are then also 
not able to inherit from the original root, because the project that's NOT inheriting 
breaks the node...

But the childs are still able to inherit from the parent that breaks the node - but 
then they only inherit information from this parent and not from the root.

Best Regards

Jakob Vedel Adeltoft, CTO
[EMAIL PROTECTED]

WebProof - www.webproof.dk
Tel +45 46 32 68 68
Fax +45 46 35 94 94 

> -----Original Message-----
> From: Uttam [mailto:[EMAIL PROTECTED]
> Sent: Saturday, March 15, 2003 12:59 PM
> To: Jakob Vedel Adeltoft
> Subject: RE: JOIN on same table
> 
> 
> you want only following records, i.e. excluding all childs of 
> SubProjectB because SubProjectB is not inheriting?
> 
> project_group_id              ref_project_group_id    name    
> root_project_group_id node_depth      inherit
> 10                    0                       ProjectA        
> 0             0               0
> 57                    10                      SubProjectA     
> 10            1               1
> 
> 
> -----Original Message-----
> From: Jakob Vedel Adeltoft [mailto:[EMAIL PROTECTED]
> Sent: Saturday, March 15, 2003 15:28
> To: Uttam; [EMAIL PROTECTED]
> Subject: RE: JOIN on same table
> 
> 
> Uttam: Your're great! But there's still one thing I haven't 
> mentioned (my fault)...
> 
> If I add more childs to the same node_depth and sets 
> SubProjectB NOT to inherit, then the query fails...
> 
> I now have these records:
> project_group_id              ref_project_group_id    name    
> root_project_group_id node_depth      inherit
> 10                    0                       ProjectA        
> 0             0               0
> 57                    10                      SubProjectA     
> 10            1               1
> 59                    57                      SubProjectB     
> 10            2               0
> 60                    59                      SubProjectC     
> 10            3               1
> 63                    59                      SubProject_1    
> 10            3               1
> 62                    60                      SubProjectD     
> 10            4               1
> 64                    63                      SubProject_2    
> 10            4               1
> 
> This would look somehting like this in a treeview:
>       ProjectA (10)                                   <- 
> node_depth = 0 (root)
>               \
>               SubProjectA (57)                                
> <- node_depth = 1
>                       \
>                       SubProjectB (59)                        
> <- node_depth = 2
>                               /  \
>         SubProject_1 (63)   SubProjectC (60)  <- node_depth = 3
>                           /        \
>       SubProject_1 (64)               SubProjectD (62)        
> <- node_depth = 4
> 
> But if running your query against the database I get the 
> following output:
> project_group_id              ref_project_group_id    name    
> root_project_group_id node_depth      inherit
> 10                    0                       ProjectA        
> 0             0               0
> 57                    10                      SubProjectA     
> 10            1               1
> 62                    60                      SubProjectD     
> 10            4               1
> 64                    63                      SubProject_2    
> 10            4               1
> 
> What could be wrong?
> 
> Best Regards
> 
> Jakob Vedel Adeltoft, CTO
> [EMAIL PROTECTED]
> 
> WebProof - www.webproof.dk
> Tel +45 46 32 68 68
> Fax +45 46 35 94 94 
> 
> > -----Original Message-----
> > From: Uttam [mailto:[EMAIL PROTECTED]
> > Sent: Saturday, March 15, 2003 7:57 AM
> > To: Jakob Vedel Adeltoft; [EMAIL PROTECTED]
> > Subject: RE: JOIN on same table
> > 
> > 
> > try this:
> > 
> > SELECT PG1.*
> > FROM project_group_list AS PG1 LEFT JOIN project_group_list AS PG2
> >     ON PG1.ref_project_group_id = PG2.project_group_id
> > WHERE
> >     (PG1.root_project_group_id=10 AND PG1.inherit=1 AND 
> > PG2.inherit=1)
> >     OR (PG1.project_group_id=10)
> >     OR (PG1.ref_project_group_id=10)
> > ORDER BY PG1.node_depth
> > 
> > regards,
> > -----Original Message-----
> > From: Jakob Vedel Adeltoft [mailto:[EMAIL PROTECTED]
> > Sent: Friday, March 14, 2003 16:30
> > To: [EMAIL PROTECTED]
> > Subject: JOIN on same table
> > 
> > 
> > Hi there,
> > I have this table:
> > 
> > project_group_id            ref_project_group_id    name    
> > root_project_group_id       node_depth
> > inherit
> > 10  0       ProjectA        0       0       0
> > 57  10      SubProjectA     10      1       1
> > 59  57      SubProjectB     10      2       1
> > 60  59      SubProjectC     10      3       0
> > 62  60      SubProjectD     10      4       1
> > 
> > project_group_id (int) = primary key.
> > ref_project_group_id (int) = parent project (if root, then 0)
> > name (char) = name of project
> > root_project_group_id (int) = project_group_id for root project (if
> > root, then 0)
> > node_depth (int) = how far down in the tree this child is (if 
> > root, then
> > 0)
> > inherit (int) = determines if this project inherit information from
> > parent (no=0, yes=1)
> > 
> > This would look somehting like this in a treeview:
> >     ProjectA (10)                                   <- node_depth =
> > 0 (root)
> >             \
> >             SubProjectA (57)                                <-
> > node_depth = 1
> >                     \
> >                     SubProjectB (59)                        <-
> > node_depth = 2
> >                             \
> >                             SubProjectC (60)                <-
> > node_depth = 3
> >                                     \
> >                                     SubProjectD (62)        <-
> > node_depth = 4
> > 
> > I now wan't all child records (inclusive root) for ProjectA 
> > that inherit
> > information. This means that I only wan't records with 
> > project_group_id
> > = 10, 57, 59, because 60 is NOT inheriting and it's child 
> project (62)
> > is then not able to inherit.
> > 
> > I've made the follwoing query:
> > SELECT PGL1.project_group_id, PGL1.ref_project_group_id, PGL1.name,
> > PGL1.permission_inherit, PGL1.node_depth, PGL1.root_project_group_id
> > FROM project_group_list PGL1
> > LEFT JOIN project_group_list PGL2 ON PGL1.root_project_group_id =
> > PGL2.root_project_group_id
> > WHERE PGL2.root_project_group_id = 10
> > AND PGL2.permission_inherit = 0
> > AND PGL1.node_depth < PGL2.node_depth
> > ORDER BY PGL1.node_depth
> > 
> > But this only gives me 57 and 59, but not 10 (root). This query also
> > have a problem, if all projects is inheriting and there is 
> no records
> > with inherit=0, then the query returns no results.
> > 
> > What can I do to solve this problem? I hope someone can help me...
> > 
> > /Jakob
> > 
> > 
> > 
> > 
> 

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to