Mysql join
pages (id, blockid, title)
blocks (id, title)
нужно вывести все строки из pages, где pages.blockid не существует в blocks.id
По дате
По рейтингу
SELECT * FROM pages p WHERE NOT EXISTS (SELECT 1 FROM blocks b WHERE b.id = p.blockid)
LEFT JOIN наоборот, добавляет в выборку записи, для которых нет соответствия во второй таблице. Но он выбирает и все, для которых такое соответствие есть.
Как вариант - left join где какое-то из полей точно будет null (например id)