entities
という名前のテーブルがあります。カラムはid, type, status, fingerprint, uuid
です。 http://sqlfiddle.com/#!15/8d9b3/21フィールドに異なる値のレコードを見つける方法
各エンティティは、公開バージョンとドラフト版の両方を持つことができます(同じUUIDを持ちます)。 公開バージョンと使用されているドラフトバージョンのフィンガープリント(属性のmd5)の間の変更を追跡します。
変更されたすべてのドラフトエンティティ(例:同じタイプとuuidを持ちますが、フィンガープリントが異なるエンティティ)を見つける方法を教えてください。
案を表し、これらの記録については、と一つの製品の公開バージョン
#id #type #status #fprint #uuid
(3, 'Product', 'draft', 'aaaa', '2e92f72a-c55f-42df-ba7f-afcb131cc6ff'),
(4, 'Product', 'published', 'aaab', '2e92f72a-c55f-42df-ba7f-afcb131cc6ff')
私は、結果としてドラフト版を持っている必要があります。
ありがとうございます!
UPDATE
このクエリは、
select draft.*
from entities draft
join entities published on published.type = draft.type
and published.uuid = draft.uuid and published.status = 'published'
where draft.status = 'draft' and draft.fingerprint != published.fingerprint
作品しかし、おそらくより良い1が存在しますか?
必要な情報をよりよく説明するために説明が更新されました。ごめんなさい。 –