I am trying to find the fastest way to find all of the records in a parent table that do not have certain records in a child table. For example, I want the query to return all of the family records where there are no male children or no children at all. 

Example 1

This is painfully slow:

SELECT * FROM Families
WHERE Families.FamilyID NOT IN(SELECT FamilyID FROM Children WHERE Children.Gender="m")

Example 2

This is faster:

SELECT * FROM Families
WHERE NOT EXISTS(SELECT * FROM Children WHERE Children.Gender="m" AND Children.FamilyID = Families.FamilyID)

Example 3

This is the fastest, but I'm worried about investing in it because I can't find any documentation on it. I don't even know what it's called. For want of a better term, we have been calling it an "anonymous query". 

SELECT * FROM Families
LEFT JOIN
[SELECT * FROM Children WHERE Gender="m"]. AS AliasChildren
ON Families.FamilyID=AliasChildren.FamilyID
WHERE AliasChildren.FamilyID IS NULL

So my question is this:


What is this thing called in example 3?
Is it a "mainstream" feature of Access that
will be supported in the future?
Where can I find documentation on
it (this might be easier once I know what it's called)?


Thanks!


Question: Can I use a package manager of one distribution on another?
Answer: If you want to use portage to install packages as a user, have a look at Gentoo prefix. It works pretty well for me, but it also tends to need more space than I would like.

For system-wide package installation you should take into account that Fedora and Gentoo have totally different ideas about what is a package and how it should be installed -- actually way more different than the difference between deb and rpm files than can be converted and installed to some extent into other distributions. Save yourself the hassle and decide upfront what you want and then go with that.