0

特定の仕様の行のペアの両方のIDを取得するにはどうすればよいですか?

より具体的に:

id - spec1 - spec2 - spec 3
1    null    30 nov  34
2    null    30 nov  34
3    null     1 dec  35
4    75       1 dec  35

同じ日付で、どの行にもspec1の値がない行のspec3を更新したいと思います。

この例の場合:行1と2を更新したい->同じ日付、spec1の値なし

行3と4を更新したくない->同じ日付ですが、行4にはspec1の値があります

4

2 に答える 2

0
UPDATE my_table t1
  JOIN my_table t2
    ON t1.spec1 IS NULL
   AND t2.spec1 IS NULL
   AND t1.spec2 = t2.spec2
   AND t1.id    < t2.id
SET    t1.spec3 = 123,
       t2.spec3 = 456

sqlfiddleでそれを参照してください。

于 2012-11-30T09:36:07.890 に答える
0

このクエリからIDを取得できます

tbl a、tblbからa.ididを選択します。ここでa.spec2= b.spec2およびisnull(a.spec1)およびisnull(b.spec1)およびa.id!= b.id;

于 2012-11-30T09:40:26.227 に答える