2013-12-01 3 views
1

У меня есть реляционная база данных (mysql) с двумя таблицами: Города и события.Удалить ненужные строки из реляционной таблицы

Город таблица:

- city_id 
    - city_name 
    - city_coord 

Таблица события

- event_id 
    - event_name 
    - event_descr 
    - city_id 

В таблице городов у меня есть 1500+ строк, и около 1300 строк не связана с таблицей событий. Как удалить эти строки?

ответ

1

Вы можете сделать:

DELETE FROM cities 
WHERE city_id NOT IN (SELECT city_id FROM events) 

Как уже упоминалось в комментариях, если CITY_ID может быть пустым в событиях, это не будет работать. См this answer о том, почему именно

+2

Обратите внимание, что это не будет работать, если 'events.city_id' может быть' NULL' –

0
DELETE FROM Cities 
WHERE city_id NOT IN (SELECT city_id 
         FROM Events) 
Смежные вопросы