フォルダー、コンテンツ、ライブラリーテーブルがあります。各フォルダーには、コンテンツ テーブルとライブラリ テーブルの両方に多くのコンテンツがあります。コンテンツ テーブルとライブラリ テーブルは、content_id に依存しています。コンテンツを追加すると、コンテンツとライブラリ テーブルの両方が保存されます。突然、ライブラリ テーブルで削除が発生したに違いありません。一部のコンテンツはライブラリ テーブルでは削除されますが、コンテンツ テーブルでは削除されません。
特定のフォルダーID、そのフォルダー内のコンテンツの数、そのフォルダー内のライブラリの数を取得したい。
フォルダーIDを取得できるいくつかのオプションを試します(ライブラリテーブルではなくコンテンツテーブルに表示されるコンテンツ)。単一のクエリを使用して、folder_id count(content_id コンテンツ テーブル),count(content_id ライブラリ テーブル) を取得します。
select distinct a.folder_id from (
select c.folder_id,c.content_id, l.content_id as lid from content c left join library l
on c.content_id = l.content_id
where l.content_id is null) a
結果:
folder_id ccount lcount countdiff
123 33 30 3