2

私はこのクエリを持っています:

SELECT notiser.notis AS notis
    , skapare.kategoriId
    , skapare.kategori AS kategori 
FROM notiser, skapare, anvandare 
WHERE skapare.kategori = 2 
    AND skapare.kategoriId =  448 
    AND skapare.id = notiser.skapareId 
    AND anvandare.id = skapare.anvandareId;

それは私に結果を与えます:

notis   kategoriId  kategori
Hello!      448     2
Hello2!     448     2
Hello3!     448     2

これらの特定の結果だけで、「カテゴリ」の値を 3 に変更したいと思います。

出来ますか?

PHPとmysqlを使用しています。

4

3 に答える 3

3

同じFROMとステートメントWHEREで使用できます。UPDATE

UPDATE notiser, skapare, anvandare 
SET skapare.kategori = 3
WHERE skapare.kategori = 2 
    AND skapare.kategoriId =  448 
    AND skapare.id = notiser.skapareId 
    AND anvandare.id = skapare.anvandareId;
于 2012-07-23T15:30:57.550 に答える
0

skapare.kategori完全にフォローしているわけではありませんが、3

SELECT notiser.notis AS notis
    , skapare.kategoriId
    , skapare.kategori AS kategori 
FROM notiser, skapare, anvandare 
WHERE skapare.kategori = 3 
    AND skapare.kategoriId =  448 
    AND skapare.id = notiser.skapareId 
    AND anvandare.id = skapare.anvandareId;

更新 私は今理解していると思います:

UPDATE skapare SET skapare.kategori = 3 WHERE skapare.id IN(SELECT notiser.skapareId
FROM notiser, skapare, anvandare 
WHERE skapare.kategori = 2
    AND skapare.kategoriId =  448 
    AND skapare.id = notiser.skapareId 
    AND anvandare.id = skapare.anvandareId);
于 2012-07-23T15:28:12.130 に答える
0

idテーブルに単一の行を識別する列があると仮定するとskapare、次のクエリを使用できます。

UPDATE skapare set kategori=3
WHERE skapare.id IN
    (SELECT skapare.id 
     FROM notiser, skapare, anvandare 
     WHERE skapare.kategori = 2 
        AND skapare.kategoriId =  448 
        AND skapare.id = notiser.skapareId 
        AND anvandare.id = skapare.anvandareId);
于 2012-07-23T15:31:29.213 に答える