2014-12-15 8 views
0

У меня есть таблица main с id и sec_id. У меня есть sec_id, и мне нужен идентификатор, чтобы удалить что-то из db.Sql удалить значение из базы данных

DELETE FROM main WHERE id = (get all elements where sec_id is the same) 
+0

delete from main где id = (выберите * from main где sec_id = @sec_id) – user2321611

+0

Когда вы пытаетесь использовать 'ID' = что-то, вы не можете выбрать все поля из таблицы. Это должно быть только поле «ID». –

+0

Так что-то вроде select id из main где sec_id = @sec_id? – user2321611

ответ

1

Если я правильно понял ваш вопрос, вы должны просто быть в состоянии удалить на основе sec_id. Это предполагает, что это часть таблицы.

DELETE FROM main WHERE sec_id = @sec_id 

В этом примере @sec_id является значение соответствующего sec_id, что вы хотите, чтобы соответствовать

Если это не часть таблицы, но у вас есть другая таблица, которая содержит как, то я вы могли бы использовать что-то вроде :

DELETE FROM main 
WHERE EXISTS(SELECT 1 FROM other 
      WHERE main.id = other.id AND other.sec_id = @sec_id) 
+0

и что, если это не часть таблицы? – user2321611

+0

Возможно, вы могли бы показать нам свой стол и то, что вы хотите удалить. – pjd

+0

@ user2321611 Я добавил этот вариант к моему ответу. Трудно дать вам точный ответ, так как вы не предоставляете схему – tvanfosson

0

Если я хорошо понимал:

DELETE FROM main WHERE id in (SELECT DISTINCT A.id FROM main AS A INNER JOIN main AS B ON A.sec_id=B.sec_id)

Смежные вопросы