2017-08-10 79 views
0

嗨在這裏我有兩個名爲test和test2的表。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)'; 

我需要下面的輸出。但結果沒有任何結果。善意幫助。任何錯誤由我到底做了些什麼,或者如果有,將會在下面的輸出任何最好的評判,請提

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 
+0

您好,我突出部分需要將值更新到「可用性」列線的東西是可能的,我希望我應該使用更新查詢進入確定可用性列的值。 –

0

我不知道這是否會work.but嘿,我們都儘量在這裏的權利..

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

我不明白,你爲什麼需要內部join.You只需要那些ID所預在test2表中發送,然後就把它拿走。 儘管我已經使用'in'關鍵字,但也嘗試'=',但我懷疑它會工作,因爲內部查詢返回id's.thanks列表。