私はテーブルのレコードを取得し、そのテーブルの関連レコードの数をカウントするクエリを持っています。MySQLサブクエリ - 最新のタイムスタンプ付きレコードを取得し、フィールドを抽出します
私は何をしたいのですが、ここで何が起こっている関連テーブルの最新のレコードのtext
フィールドを取得し、クエリ
SELECT DISTINCT
inst.id, inst.name, inst.state, inst.farm_status,
(SELECT COUNT(inst_note.id)
FROM project_institution_note AS inst_note
WHERE inst_note.institution_id = inst.id) AS inst_note_count,
(SELECT COUNT(c.id) FROM project_catalog AS c
WHERE c.institution_id = inst.id
AND c.status = 0
AND c.catalog_type BETWEEN 0 AND 1) AS ug_count,
(SELECT COUNT(c.id) FROM project_catalog AS c
WHERE c.institution_id = inst.id
AND c.status = 0
AND c.catalog_type BETWEEN 1 AND 2) AS grad_count,
(SELECT COUNT(c.id) FROM project_catalog AS c
WHERE c.institution_id = inst.id
AND c.status = 0
AND c.catalog_type >= 3) AS alt_count,
(SELECT COUNT(c.id) FROM project_catalog_note AS cn
INNER JOIN farmtool_catalog AS c
ON c.id = cn.catalog_id
WHERE c.institution_id = inst.id) AS catalog_note_count,
(SELECT inst_note.text FROM project_institution_note AS inst_note -- Issue portion of query
LEFT JOIN project_institution AS inst
ON inst_note.institution_id = inst.id
WHERE inst_note.institution_id = inst.id
ORDER BY inst_note.date DESC
LIMIT 1) AS latest_note
FROM project_institution AS inst
LEFT JOIN project_institution_note AS inst_note
ON inst.id = inst_note.institution_id
LEFT JOIN project_catalog AS c
ON inst.id = c.institution_id
WHERE LOWER(inst.state) = "me";
に含めることは、それはで最後のレコードをピックアップですproject_institution_note
であり、クエリの値としてtext
を処理します。このサブクエリでは、どのように私は
- 限度関連
project_institution.id
と - から
project_institution_note
の選択は、最新のタイムスタンプレコードを選択することができます。
私は既に#2を達成しましたが、#1の結果セットを制限するのに役立つ必要があります。何か案は?
サンプルデータと予想される出力を示します。 \t [**最小限で完全で検証可能なサンプルを作成する方法**](http://stackoverflow.com/help/mcve)あなたの質問にはあまりにも多くのデータが関連していません。だから問題を特定するためにコードを減らそうとする。 –