Mysql - 检查外表中是否存在id

时间:2016-06-21 12:44:34

标签: mysql foreign-key-relationship

我得到了一个"大"数据库(10M行),我需要删除无用的采集ID(不再具有acquisition_id关系)。

收购

- id
- date

datapres

- id
- value
- atmo
- #acquisition_id

datatemps

- id
- #acquisition_id

dataconds

- id
- value
- stack_num
- #acquisition_id

所以我需要在这3个表中选择没有关系的所有获取ID。是否可以直接在SQL中使用?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用多个LEFT JOIN s:

SELECT a.id
FROM acquisitions a
LEFT JOIN datapres dp
 ON(a.id = dp.acquisition_id)
LEFT JOIN datatemps dt
 ON(a.id = dt.acquisition_id)
LEFT JOIN dataconds dc
 ON(a.id = dc.acquisition_id)
WHERE dp.id IS NULL OR
      dt.id IS NULL OR
      dc.id IS NULL

这将为您提供3个数据表之一中缺少的ID