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