Я использую PHP и у меня есть следующие две таблицы:Математические операции на нескольких таблицах
REVIEWS
| id | Item | editor_rating | user_votes |
------------------------------------------------
| 1 | item_1 | 18.1 | 415 |
| 2 | item_2 | 17.1 | 371 |
| 3 | item_3 | 14.7 | 111 |
| 8 | item_8 | 15.3 | 215 |
| 9 | item_9 | 17.7 | 119 |
| 10 | item_10 | 17.0 | 66 |
FILTERS
| id | Item | published |
----------------------------------
| 1 | item_1 | 1 |
| 2 | item_2 | 1 |
| 3 | item_3 | 1 |
| 8 | item_8 | 1 |
| 9 | item_9 | 1 |
| 10 | item_10 | 1 |
Следующий запрос работает правильно и возвращает все строки:
SELECT * FROM reviews AS r
JOIN filters AS f ON (r.id = f.id)
WHERE f.published = 1
Так что я на правильном пути. Теперь я хотел бы сделать некоторые математические операции над записями. Например, сумма поля editor_rating и user_votes и список строк, упорядоченных по DESC. Я попытался следующие, но она возвращает uncorrect результаты (не ошибки MySQL, ошибка суммы):
SELECT *, r.editor_rating+r.user_votes AS total FROM reviews AS r
JOIN filters AS f ON (r.id = f.id)
WHERE f.published = 1 ORDER BY total DESC
В таблицах выше содержит фактические данные дБ. Суммируя editor_rating и user_votes Я должен был список упорядочен следующим образом:
18.1 + 415 = 433.1 = Item_1
17.1 + 371 = 388.1 = Item_2
15.3 + 215 = 230.3 = Item_8
вместо этого я получаю следующий список:
Item_8
Item_9
Item_10
Пожалуйста, не пишите теги в названиях и благодарите нас, только сообщая об этом сообществу. –
запрос выглядит нормально. каковы исходные данные и ожидаемые результаты .. и что вы получили? – Randy
@Randy - я отредактировал мое сообщение – Nicero