Я считаю, что приведенный ниже запрос будет работать.
ОБНОВЛЕНИЕ: @Gratzy прав, этот запрос не будет работать, взгляните на предложенные мной изменения структуры
SELECT DISTINCT m.id as mid, m.subject
FROM message as m
INNER JOIN properties as p
ON m.mid = p.mid
where (p.name = 'read' and p.value = 'false') or (p.name = 'importance' AND p.value = 'high')
Хотя структура вашей таблицы свойств мне немного не нравится ...
Можно ли структурировать таблицу следующим образом:
messages
--------
mid subject Read Importance
--- ----------------- --------- ------------
1 Hello world false 3
2 Bye world false 1
3 The third message true 1
4 Last one false 3
importance
----------
iid importanceName
--- --------------
1 low
2 medium
3 high
и используйте этот запрос:
SELECT m.id as mid, m.subject
FROM message as m
where m.read = false AND m.importance = 3