2015-01-04 2 views
0

Я пытаюсь написать запрос mysql для приложения, которое я разрабатываю для Android.mysql - Использование группы

У меня есть база данных, которая содержит таблицу bill_content и таблицу products Я хочу выбрать 10 самых продаваемых товаров.

Это минимальная версия того, что у меня есть, но это все, что мне нужно, чтобы получить ответ здесь.

bill_content таблица имеет столбцы: id, id_product, quantity (id_product и количество здесь может быть дубликатом, потому что эта таблица больше, содержащая id_bill и другую информацию)

products таблица имеет столбцы: id, name

SELECT products.name AS Product, 
     bill_content.quantity AS Quantity 

FROM bill_content, products 
WHERE bill_content.id = products.id 
ORDER BY bill_content.quantity DESC 
LIMIT 10 

Конечно, это возвращает таблицу из 2 строк, содержащих все продукты и их количество, в таблице bill_content, но есть дубликаты, и мне нужно сделать s их количества и отображать их как одну строку.

Заранее спасибо.

ОТВЕТИЛ Это может быть сделано с помощью GROUP BY как сказал Гордон Линофф.

ответ

3

Вы хотите получить group by. Вы также должны научиться правильно использовать явный синтаксис join:

SELECT p.name AS Product, 
     SUM(bc.quantity) AS Quantity 
FROM bill_content bc JOIN 
    products p 
    ON bc.id = p.id 
GROUP BY p.name 
ORDER BY SUM(bc.quantity) DESC 
LIMIT 10; 
+0

Спасибо, я также использовал синтаксис JOIN. Примите это, когда принятие станет доступным. – laurGanta