Считать отдельно. Если будете смешивать в одном запросе, то запутаетесь.
Если всё-таки хотите возвратить в одном запросе, то можно просто объединить результаты через SELECT:
Понятно, тогда можно, например, так
SELECT COUNT(*) AS count
FROM orders o
JOIN order_comments oc ON o.id = oc.order_id
WHERE o.id =286
AND NOT EXISTS (SELECT * FROM `order_comment_views` `ocv` WHERE `ocv`.`comment_id` = `oc`.`id` AND `ocv`.`user_id` = 1)
Цифры 1000 и 100 из первой строчки ниоткуда не берутся. Они часть "рецепта" по быстрому умножению чисел.
Показанный вывод доказывает, что предложенный алгоритм соответствует каноническому умножению в столбик.
Цифры 1000 и 100 из последней строчке соответствуют умножению в столбик:
·········ab
·········cd
---------
·······b×d= b×d
·····a×d··= 100×a×d
·····b×c··= 100×b×c
··a×c···· = 1000×a×c
--------
1000 × a × c + 100 × a × d + 100 × b × c + b × d
Так как мы оперируем двузначными числами, то у нас не по одному нолику прибавляется, а по два на каждый разряд.
В паскале традиционно массивы нумеруются с 1. Во всех обучающих книгах по паскалю в качестве примера используются описания типа Arr : array[1..10] of integer;
Именно поэтому и символы в строке также нумеруются с 1.
Но сейчас, из-за влияния C++, WinApi, Com, где нумерация массивов идёт с нуля, в паскале также удобнее использовать массивы типа Arr : array[0..9] of integer; .
Сначала попробовать под пользователем, который входит в группу «Пользователи».
Если нет, — то под системным с галочкой «Разрешить взаимодействие с рабочим столом».
Если в каком-то варианте com-объект создаётся, то дальше можно, по-необходимости, поограничивать права.
Что-бы не было тормозов нужно фильтр запускать с задержкой через таймер. Если пользователь успевает нажать несколько клавиш - таймер просто перезапускается, если же пользователь призадумался, то таймер срабатывает и запускает фильтрацию. Задержка может быть 500 мс - 1 с
В ответе добавил примерное использование CollectionView.