MySQL查询,现在有表a和表b,一般情况表a生成表b,表a的主键关联表b,需要查询出表a有值,但是表b没有值或者表b的值被删除
时间: 2023-07-28 21:28:09 浏览: 72
可以使用左连接(LEFT JOIN)查询表a和表b,然后筛选出表b中对应的主键列值为NULL的记录或者表b中的记录被删除的记录。具体SQL语句如下:
```
SELECT a.*
FROM a LEFT JOIN b ON a.primary_key = b.foreign_key
WHERE b.foreign_key IS NULL OR b.is_deleted = 1;
```
其中,primary_key和foreign_key分别是表a和表b的主键和外键列,is_deleted是表b中的删除标志列,取值为1表示已删除。LEFT JOIN会将表a中的所有记录都保留下来,即使在表b中没有匹配的记录也会以NULL填充,然后通过WHERE条件筛选出需要的记录。