Использовать вид:
CREATE VIEW post_meta2 AS SELECT * FROM post_meta
Тогда ваш запрос становится:
SELECT *
FROM posts
RIGHT OUTER JOIN post_meta ON posts.post_id = post_meta.post_id
RIGHT OUTER JOIN post_meta2 ON posts.post_id = post_meta2.post_id
WHERE post_meta.meta_key = "category"
AND post_meta.meta_value = "technology"
AND post_meta2.meta_key = "keyword"
AND post_meta2.meta_value = "cloud"
Да, я знаю, это грубо. Но, тем не менее, эффективен. Если вы хотите элегантности, то обновите, как уже было предложено, в противном случае этого должно быть достаточно для временного решения проблемы.