2013-07-29 4 views
0

представьте себе, что у меня есть 2 таблицы, и я хотел бы, чтобы вычислить бестселлеры художников:MySQL вложен граф заявление

  • музыки (идентификатор, название, штрих-код)
  • художников (штрихкод, художник)

    SELECT COUNT(m.barcode) AS sells, m.barcode, artist 
    FROM music m 
    LEFT JOIN artists a 
    ON m.barcode = a.barcode 
    GROUP BY m.barcode ORDER BY sells DESC 
    

Этот запрос возвращает например:

sells | barcode | artist 
--------------------------------- 
    1000  123  jdoe 
    500  223  kloe 
    100  321  jdoe 

Как я могу рассчитать, что jdoe комплексно продается 1100 музыки?

Заранее спасибо за любой намек

+1

ERM, группа художника? – Strawberry

+1

Если вам не нужны отдельные штрих-коды, почему вы их выбираете и группируете? –

ответ

1

Вы должны изменить group by от barcode к artist (и удалить barcode из select заявления):

SELECT COUNT(m.barcode) AS sells, artist 
FROM music m LEFT JOIN 
    artists a 
    ON m.barcode = a.barcode 
GROUP BY artist 
ORDER BY sells DESC; 
0
SELECT COUNT(m.barcode) AS popular, m.barcode, a.artist, SUM(a.sell) 
FROM `music` AS m 
LEFT JOIN `artists` AS a 
ON (m.barcode = a.barcode) 
WHERE a.artist = 'jdoe' 
GROUP BY m.barcode 
ORDER BY `popular` DESC