ticket と ticket_custom の 2 つのテーブルがあります。
テーブルの配置はこんな感じ。
状態を変更できる Web インターフェイスがあります (テーブル ticket_custom の値) Web インターフェイスは、元のエントリを更新する代わりに、新しいエントリを追加します。
ticket name value
1 state Ready for Final Verification
2 state Ready for Final Verification
1 state Verified
最後の行が追加されます
そのため、クエリを変更する必要があります。
SELECT p.value AS __color__,
id AS ticket, summary, component, version, c.value AS state, milestone, t.type AS type,
owner, status,
time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter
FROM ticket t, ticket_custom c
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' AND id = c.ticket
WHERE status <> 'closed' AND id = c.ticket
ORDER BY CAST(p.value AS int), milestone, t.type, time, c.ticket
クエリは両方のエントリを返すようになりました。where句にネストされたselectを追加しようとしました。
SELECT g.ticket
FROM ticket_custom g
WHERE g.ticket = id
ORDER BY g.ticket DESC LIMIT 1
そう -
SELECT p.value AS __color__,
id AS ticket, summary, component, version, c.value AS state, milestone, t.type AS type,
owner, status,
time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter
FROM ticket t, ticket_custom c
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority' AND id = c.ticket
WHERE status <> 'closed' AND id = c.ticket and (
SELECT g.ticket
FROM ticket_custom g
WHERE g.ticket = id
ORDER BY g.ticket DESC LIMIT 1 )
ORDER BY CAST(p.value AS int), milestone, t.type, time, c.ticket
明らかに私は何か間違ったことをしています。