Jump to content

[SOLVED] relational table - how to check id in one column but not the other?


Recommended Posts

Hi. I'm trying to do something which I'm sure is quite simple but is taking me way longer than I can afford. Help would be very much appreciated.

 

I have a tables of two columns, parent and child, which strore ids and describe a tree structure of items in another table.

 

eg

+--------+-------+

| parent | child |

+--------+-------+

|      1 |    2 |

|      1 |    5 |

|      2 |    3 |

|      2 |    4 |

|      5 |    6 |

|      5 |    7 | 

+--------+-------+

 

How can I query those ids that are a parent but aren't a child? In this simplified example it would be 1 but a far more complex structure will prevail. Thanks again in advance of any help.

Those that are parent, but are not a child translates as, those parents who do not appear in child column

 

SELECT parent FROM parent_child WHERE parent NOT IN (SELECT child FROM parent_child) GROUP BY parent

Show me, show me, show me :)  Pretty please :P

 

Like so:

SELECT pc1.parent FROM parent_child AS pc1 LEFT JOIN parent_child AS pc2 ON ( pc2.child = pc1.parent ) WHERE pc2.child IS NULL GROUP BY pc1.parent

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.