У меня есть следующий запрос.Запрос, возвращающий неверный счет
SELECT a.link_field1 AS journo, count(a.link_id) as articles, AVG(b.vote_value) AS score FROM dan_links a LEFT JOIN dan_votes b ON link_id = vote_link_id WHERE link_field1 <> '' and link_status NOT IN ('discard', 'spam', 'page') GROUP BY link_field1 ORDER BY link_field1, link_id
Этот запрос возвращает счет 3 для первого элемента в списке. Что должно быть возвращены
Journo | count | score
John S | 2 | 6.00
Joe B | 1 | 4
Однако для первого John S, он возвращает число 3.
Если я непосредственно запрос
select * from dan_links where link_field1 = 'John S'
Я получаю 2 записи вернуться, как я бы ожидать. Я не могу за всю жизнь понять, почему счет ошибочен, если по какой-то причине он не учитывает записи из таблицы dan_vote
Как я могу получить правильное количество или мой запрос полностью не прав?
EDIT: Содержание таблиц
dan_links
link_id | link_field1 | link | source | link_status
1 | John S | http://test.com | test.com | approved
2 | John S | http://google.com | google | approved
3 | Joe B | http://facebook.com | facebook | approved
dan_votes
vote_id | link_id | vote_value
1 | 1 | 5
2 | 1 | 8
3 | 2 | 4
4 | 3 | 1
EDIT: он выглядит, как он рассчитывает строки в таблице Проголосовали по какой-то причине
Проводка записей (из 2 таблиц), с которыми вы работали, была бы полезна. – codingbiz
cheers Я добавил, что выше – Dannymh
Итак, я удалил одну из записей для link_id 1 в таблице голосов, а счетчик пришел в 2, что верно, но я не понимаю, почему это будет так, потому что мой счет находится на .link_id – Dannymh