2014-02-22 5 views
0

나는 MySQL을 사랑하며 지난 2 년 동안 그것을 사용 해왔다. 하지만 지금은 내가 세 개의 테이블MySQL의 조회수에 의한 조회수

... 붙어

Files 
--------- 
id | name | views | folder_id 
1 | car | 274 | 1 
2 | bike | 100 | 1 
3 | train | 120 | 2 

Folders 
--------- 
id | name | storage_id 
1 | folder1 |  1 
2 | folder2 |  2 

Storage 
--------- 
id | name 
1 | storage1 
2 | storage2 
3 | storage3 
내가 스토리지의 테이블은 모든 파일의 전망의 총량으로 정렬되도록, MySQL의 쿼리를하고 싶습니다

저장소 내부에있는 각 폴더 안에 있습니다.

내 첫 번째 접근 방식은 각 파일 그룹의 전체보기를 folder_id로 추가하는 것이지만 그 값을 폴더의 테이블로 전달한 다음 저장소 테이블을 정렬하려면 어떻게해야합니까?

불쌍한 설명에 사과드립니다. 나는 아직도 멍청이야.

아이디어는

답변

1

Storage에 의해 종류의 파일보기의 총 수에 의해 테이블, 그룹에 가입

감사합니다 사전에 파일의 뷰의 전체 양에 의해 드 스토리지의 테이블을 주문하는 것입니다

SELECT  Storage.* 
FROM  Storage 
    LEFT JOIN Folders ON Folders.storage_id = Storage.id 
    LEFT JOIN Files ON Files.folder_id = Folders.id 
GROUP BY Storage.id 
ORDER BY SUM(Files.views) DESC 

sqlfiddle에서 확인하십시오.

+0

감사를 원했다! : D 정말 환상적이에요! – Alex

1

A는 너무 합계를 보여줍니다 eggyal 년대에 약간 다른 질문은, 경우에 당신은

SELECT Storage.name, SUM(Files.views) AS total_views FROM Storage 
LEFT JOIN Folders ON Folders.storage_id = Storage.id 
LEFT JOIN Files ON Files.folder_id = Folders.id 
GROUP BY Storage.name 
ORDER BY total_views DESC