2017-08-10 14 views
0

こんにちは、私はtestとtest2という名前の2つのテーブルを持っています。mysql-選択クエリに関してクエリを更新します。

enter image description here

TEST2を次のようにテストがあるが

enter image description here

を次のように私は以下の出力を得るために、SQLコードの下に使用しています。

UPDATE `test` 
SET `availability` = 'ok' 
WHERE 
    `id` = '(SELECT 
test.id 
FROM 
test2 
INNER JOIN test ON test.id = test2.PId)'; 

以下の出力が必要です。しかし、それは結果をもたらさない。親切に助けてください。間違いは私の最後で行わまたは出力の下に取得するためのいずれかの最高の優先mothodがある場合は、親切に、アップデートを必要としないよう

enter image description here

答えて

1

私は、私が入るように更新クエリを使用する必要があります願っている可能性がありますが、私は「可用性」列に値を更新する必要が突出し

UPDATE test 
INNER JOIN test2 on test.id = test2.PId 
SET test.availability = 'OK' 
0

が鳴り参加を持つだけで、クエリ言及:

SELECT test.id, test.name, CASE WHEN teste2.pid IS NOT NULL THEN 'OK' END 
FROM test 
JOIN test2 ON test.id = test2.pid 
をこれはちょっと我々はすべての権利、ここで試すwork.butするかどう
+0

ハイテクの線に沿って何かを探していると思います可用性列のOK値。 –

0

私はわかりません..私は取得しない

UPDATE `test` 
SET `availability` = 'ok' 
WHERE 
`id` in '(SELECT 
PId from test2)'; 

、なぜあなただ​​けの前であるそれらのidを必要とする内部join.Youが必要なのかtest2のテーブルで送信され、それだけでそれを取る。 私は 'in'キーワードを使用していますが、 '='でも試してみますが、内部クエリーがid's.thanksのリストを返すのでうまくいきません。

関連する問題