次のようなusersテーブルがあると仮定します。
ID  |  USERNAME  |  STATUS  |
01  |  Aname     |    1     |
02  |  Bname     |    1     |
03  |  Cname     |    2     |
04  |  Dname     |    1     |
他にも2つのテーブルがあり、ユーザーごとに、ユーザーがインスタンス、ビデオ、および写真に対して「持っている」アイテムを記録し、ビデオテーブルが次のようになっていると仮定します。
ID  |  USER      |  VIDEO   |
01  |  01        |   aaaa   |
02  |  01        |   bbbb   |
03  |  02        |   cccc   |
04  |  02        |   dddd   |
05  |  03        |   eeee   |
06  |  03        |   ffff   |
07  |  03        |   gggg   |
写真についても同じです。
ID  |  USER      |  PHOTO   |
01  |  01        |   aaaa   |
02  |  02        |   cccc   |
03  |  02        |   dddd   |
04  |  03        |   eeee   |
05  |  03        |   ffff   |
06  |  03        |   gggg   |
現在、フィールドで最初のテーブルの結果を並べ替えようとしているSTATUSので、ステータス2のユーザーは結果の最後(または最初)に移動しますが、他のユーザーは次のように並べ替えたいと思います。彼らはビデオや写真を持っているか、持っていない。実際、ステータス1のすべてのユーザーについて、ビデオと写真があるかどうかを確認し、「警告、ビデオがありません」などのメッセージを表示します。また、ステータスに基づいて、事実に基づいてすべてのユーザーを注文したいと思います。写真やビデオがあるかどうか...次のようなものです。
SELECT id,username,status,NumOfPhotos,NumOfVideos order by status ASC, numOfPhotos ASC, NumOfVideos DESC
ここNumOfPhotosで、たとえば、SELECT COUNT(*) FROM PHOTOS WHERE USER = USERS.ID
それは可能ですか?それは単一のステートメントで可能ですか?