私のSQLデータベース構造は次のとおりです...
email_folders
id, name
email_messages
id, id_folder, date, date_read
フォルダー名を取得しようとしている単一の MySQL クエリでは、メール メッセージの合計数は、メールの合計数とフォルダーごとの未読数の両方をカウントします。
これまでのところ、基本的なカウントダウンは完了していますが、PHP で返される配列は電子メールがある行の数を返し、望ましくないことに、テーブルのフォルダーからすべてのフォルダーを返すわけではありません。email_folders
これが私が現在持っているものです...
SELECT
ef.name,
(SELECT count(id) FROM email_messages WHERE id_folder=ef.id AND date_read<date) AS unread,
(SELECT count(id) FROM email_messages WHERE id_folder=ef.id) AS total
FROM email_messages AS em
LEFT JOIN email_folders AS ef ON ef.id=em.id_folder;
現在 4 つのフォルダーがありますが、100 行以上が返されているため、何か間違っていることがわかります。必要な説明をさせていただきます。