DELETE FROM table1
WHERE field1=(SELECT id FROM table2 WHERE type=1)
OR field2=(SELECT id FROM table2 WHERE type=1)
什麼是寫這個查詢的正確方法?它目前不起作用,因爲子查詢返回多於一行。更好的方式來寫這個MySQL查詢(JOIN)
DELETE FROM table1
WHERE field1=(SELECT id FROM table2 WHERE type=1)
OR field2=(SELECT id FROM table2 WHERE type=1)
什麼是寫這個查詢的正確方法?它目前不起作用,因爲子查詢返回多於一行。更好的方式來寫這個MySQL查詢(JOIN)
使用IN
:
DELETE FROM table1
WHERE field1 IN (SELECT id FROM table2 WHERE type=1)
OR field2 IN(SELECT id FROM table2 WHERE type=1)
你可以用IN
做到這一點:
delete
from table1
where field1 in (
select id
from table2
where type = 1
)
or field2 in (
select id
from table2
where type = 1
)
根據您的表的大小,你也許可以逃脫的IN-方法。如果它們在較大的一面,則可以使用DELETE ... USING語法。
DELETE FROM foo USING foo, bar WHERE foo.field1=bar.id OR foo.field2=bar.id