2015-08-01 3 views
0

Очень замечательное название, как вы можете видеть.УДАЛИТЬ из таблицы1, где column1 больше, чем table2.column1, умноженное на 2

Попытка удалить строки, в которых одно из значений столбцов в два раза больше, чем в другой таблице.

select DB 
delete 
from table1 
where table1.id IN (select table2.id where table1.price > table2.price*2) 

Я хочу, чтобы запрос, чтобы соответствовать idcolumn и удалить все table1 строки, которые имеют table1.column1 вдвое больше, чем их коллеги в table2.column1. Какой синтаксис я должен использовать?

ответ

0

Вам нужно присоединиться к таблицам в вашем подзапросе. В приведенном ниже примере предполагается, обе таблицы имеют уникальный столбец ID с именем «ID»

delete 
from table1 
where table1.id IN (
select table2.id from table1, table2 where 
table1.id = table2.id 
and 
table1.price > (table2.price*2)) 
0

Удаление из table1 соответствия id и состояние price в table1 больше, чем table2

DELETE FROM table1 
FROM table1 INNER JOIN ON 
table1 .id = table2.id 
WHERE (table1 .price > table2.price* 2) 
0

Если две таблицы могут быть присоединились к их id s, а затем просто так:

select DB 
delete 
from table1 
where table1.id IN (
    select table2.id from table1 inner join table2 on table2.id=table1.id 
    where table1.price > table2.price*2) 
0
delete from table1 where id in 
(select id from table1 join table2 on table1.id = table2.id 
where table1.column1 > 2*table2.column1) 
Смежные вопросы