0

私は MySQL が大好きで、過去 2 年間使用しています。しかし、今私は立ち往生しています...

私は3つのテーブルを持っています

 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 で追加することですが、その値をフォルダーのテーブルに渡してストレージのテーブルを注文するにはどうすればよいですか?

説明が下手で申し訳ありません。私はまだ初心者です。

アイデアは、ファイルのビューの合計量でストレージのテーブルを注文することです

前もって感謝します

4

2 に答える 2

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で参照してください。

于 2014-02-22T00:09:13.077 に答える