表に次のデータがあります。
select p.number, pr.refNumber from part p, partref pr where pr.refNumber = p.id;
number refNumber
---------------------------------------- ----------------------
1 1
2 2
2 3
2 4
古いpartrefを削除する必要があります。partにはpartrefが1つだけ存在する必要があります。最初に、削除する必要のあるすべてのpartrefを取得する必要があります。サブクエリ(サブ選択)なしでそれを行うことは可能ですか?どうやってするの?
アップデート。
「OLD」partrefは、遅くとも作成されていないすべてのpartrefレコードです。したがって、たとえば:
refNumber creationDate
---------------------------------------- ----------------------
1 01-01-13
2 01-02-13
3 02-02-13
4 03-02-13
id = 2のパーツの場合、2、3、4のような複数のpartrefが存在します。遅くとも4番目のpartrefのみが作成されているため、削除しないでください。refNumber2および3のPartrefは削除する必要があります。