If I understand correctly, you can use UNION to combine two queries into a list:
SELECT * FROM entries e INNER JOIN entries_keyworkds ek ON e.id = ek.entry_id INNER JOIN keywords k ON ek.keywork_id = k.id WHERE k.key = 'WAKE' UNION SELECT * FROM entries e INNER JOIN entries_keyworkds ek ON e.id = ek.entry_id INNER JOIN keywords k ON ek.keywork_id = k.id WHERE k.key = 'up' ;
This will return all entries for waking up + all entries for up.
To find entries with both keys, use INTERSECT :
SELECT * FROM entries e INNER JOIN entries_keyworkds ek ON e.id = ek.entry_id INNER JOIN keywords k ON ek.keywork_id = k.id WHERE k.key = 'WAKE' INTERSECT SELECT * FROM entries e INNER JOIN entries_keyworkds ek ON e.id = ek.entry_id INNER JOIN keywords k ON ek.keywork_id = k.id WHERE k.key = 'up' ;
This will return all entries containing both keywords.
rcdmk source share