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

Mysql - Check if id exists in foreign tables

我有一个 "big" 数据库(1000 万行),我需要删除无用的收购 ID(不再有 acquisition_id 关系)。

Table 收购

- id
- date

Table datapres :

- id
- value
- atmo
- #acquisition_id

Table 数据温度 :

- id
- #acquisition_id

Table dataconds:

- id
- value
- stack_num
- #acquisition_id

所以我需要 SELECT 在这 3 个表中没有关系的所有采集 ID。可以直接在SQL吗?

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

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