This can be a wordpress installation, however i think now you ask , much more of an over-all sql question. To begin with, my sql abilities aren't great (I do not know if I am following a correct format for illustrating the db).

I have got two tables:

wp_posts :

    ID (pk)  |   post_name  |  ...
----------------------------
    45       |    "Hello"
    91       |    "Funny"
    16       |    "Wheat"

wp_postmeta :

    post_id (fk)  |    meta_key      |   meta_value  | ...
------------------------------------------------
    45            |    "_edit_lock"  |   5789789834
    45            |    "fizzbizz"    |   "foobar"
    91            |    "_something"  |   "teve"

I must choose all rows in wordpress_posts where there's NO corresponding row in wordpress_postmeta where meta_key = "fizzbizz"

I initially had this question, but someone stated that it wouldn't retrieve ID = '16' within the above situation. Wouldso would I properly write the query?

$pageposts = $wpdb->get_results("
    SELECT * FROM wp_posts p 
    JOIN wp_postmeta m 
    ON p.ID = m.post_id 
    WHERE m.meta_key <> 'fizzbizz' 
    ORDER BY p.post_date DESC;
");
SELECT * FROM wp_posts p 
LEFT JOIN wp_postmeta m 
ON p.ID = m.post_id 
WHERE m.meta_key <> 'fizzbizz'
OR m.metakey IS NULL
ORDER BY p.post_date DESC;

Should have the desired effect -)

Make use of your current query using the following changes:

LEFT JOIN rather than JOIN

add

OR m.metakey IS NULL for your WHERE clause:

SELECT * FROM wp_posts p 
    LEFT JOIN wp_postmeta m 
    ON p.ID = m.post_id 
    WHERE m.meta_key <> 'fizzbizz'
       OR m.metakey IS NULL
    ORDER BY p.post_date DESC;