まとめたいテーブルが3つあります。すべてのユーザーのビデオを含むビデオ テーブル、すべてのユーザーの画像を含むイメージ テーブル、およびカメラ テーブル。すべての画像や動画を一覧表示して並べ替えたい
prefix_videos テーブル(videoid, userid, cameraid, videosize, datetime, deleted, videolength, videoname)
prefix_images テーブル(imageid, userid, cameraid, imagesize, datetime, deleted, imagename)
prefix_cameras テーブル(userid, cameraid, ...)
以前はビデオ テーブルしかなかったので、このクエリで必要なものが得られました。
SELECT prefix_videos.videoid, prefix_videos.videoname, prefix_videos.videosize,
prefix_videos.videodatetime, prefix_videos.videolength, prefix_cameras.cameraname FROM
prefix_videos INNER JOIN prefix_cameras USING (userid,cameraid) WHERE
prefix_videos.deleted IS NULL AND prefix_videos.userid=xxx ORDER BY
prefix_videos.datetime DESC
しかし、今は画像テーブルを追加しています。だから私が欲しいのは、次のものでテーブルを構築することです:
imageid/videoid, cameraid, imagesize/videosize, datetime (either from image or video table), videoname/imagename
画像とビデオのテーブルを組み合わせて 1 つの結果を得ているので、別の INNER JOIN がここで意味があるかどうかわかりません。
ここでのもう 1 つの重要な部分は、削除されたエントリの NULL のチェックと、画像またはビデオからのものかどうかを日付で並べ替える機能です。