mysql-关于选择查询的更新查询

时间:2017-08-10 04:36:48

标签: mysql

在这里,我有两个名为test和test2的表。

测试如下

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

3 个答案:

答案 0 :(得分:1)

我认为您正在寻找符合

的内容
UPDATE test 
INNER JOIN test2 on test.id = test2.PId
SET test.availability = 'OK'

答案 1 :(得分: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

答案 2 :(得分:0)

我不确定这是否有用。但是,我们都在这里试试..

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

我不明白,为什么你需要内部联接。你只需要那些存在于test2表中的id,然后只需要它。 虽然我已经使用过'关键字,请尝试使用' ='另外,但我怀疑它会起作用,因为内部查询返回了一个id' s.thanks的列表。