Если я правильно понимаю, что-то вроде этого должно дать общее количество правок, которые сделали все пользователи, но только там, где они были в сообщениях, которые не были самими
SELECT
user.*,
COUNT(*) AS edits
FROM user
// Join posts that aren't this users
INNER JOIN news
ON news.username != user.username
// Join edits for the above posts that are this users
INNER JOIN news_text
ON news_text.news_id = news.id
AND news_text.username != user.username
И с заполнителем, если вы хотите выбрать конкретную новостную статью
SELECT
user.*,
COUNT(*) AS edits
FROM user
// Join posts that aren't this users
INNER JOIN news
ON news.username != user.username
AND news.id = [[SPECIFIC ID]]
// Join edits for the above posts that are this users
INNER JOIN news_text
ON news_text.news_id = news.id
AND news_text.username != user.username
Или, может быть, если вы хотите увидеть, сколько изменений внес конкретный пользователь в конкретную статью
SELECT
user.*,
COUNT(*) AS edits
FROM user
// Join posts that aren't this users
INNER JOIN news
ON news.username != user.username
AND news.id = [[SPECIFIC ID]]
// Join edits for the above posts that are this users
INNER JOIN news_text
ON news_text.news_id = news.id
AND news_text.username != user.username
WHERE user.username = [[SPECIFIC USERNAME]]
РЕДАКТИРОВАТЬ Альтернативный подход, если вы хотите подсчитать все сообщения, сделанные пользователем, которые НЕ являются оригинальными сообщениями, т.е. все изменения, даже если они редактируют свое собственное сообщение
SELECT
user.*,
news.*,
COUNT(*)-IF(news.username=user.username,1,0) AS edits
FROM user
// This join will give us all posts made by user
INNER JOIN news_text
ON news_text.username = user.username
// Also join the news id
INNER JOIN news
ON news_text.news_id = news.id
GROUP BY user.username, news.id
Это вернет 1 строку на пользователя для каждого news.id, подсчитав количество правок, выполненных пользователем, поэтому, чтобы взять это и вернуть итоги, вы могли бы вместо этого сделать это, чтобы возвратить количество правок, выполненных одним пользователем имя
SELECT
username,
sUM(edits)
FROM (
SELECT
news_text.username.username,
COUNT(*)-IF(news.username=news_text.username,1,0) AS edits
FROM news_text
ON news_text.username = [[USER TO CHECK]]
// Also join the news id
INNER JOIN news
ON news_text.news_id = news.id
GROUP BY news.id
)