edit!!Nevermind...I just re-read your point #2...it's only ordering across the "stories" table...
I've got a script example here that tries this:
$sql = "select s.id, s.headline, 10 * sum(k.weight) / $num_keywords as score
from stories s, keywords k
where s.id = k.story
$and
group by s.id, s.headline
order by score desc, s.id desc";
$and is an array of keywords....
Isn't this an attempt at selecting across tables?
Curious,