Mysql 改进sql查询以排除项
是否可以改进以下查询:Mysql 改进sql查询以排除项,mysql,sql,Mysql,Sql,是否可以改进以下查询: SELECT * FROM search s left join search_criteria sc ON s.id = sc.search_id WHERE sc.deleted_at IS NOT NULL AND s.id NOT IN ( SELECT s.id FROM search s left join search_criteria sa ON s.id
SELECT *
FROM search s left join search_criteria sc ON s.id = sc.search_id
WHERE sc.deleted_at IS NOT NULL
AND s.id NOT IN
( SELECT s.id
FROM search s
left join search_criteria sa ON s.id = sc.search_id
WHERE sc.deleted_at IS NULL
)
GROUP BY s.id
谢谢这取决于-如果默认数据库是kelformation,那么我认为您的查询有效地简化为:
SELECT *
FROM search s left join search_criteria sc ON s.id = sc.search_id
WHERE sc.deleted_at IS NOT NULL
GROUP BY s.id
考虑下一个场景: 你有一个装满弹珠的盒子。什么会更快
- 显示整个盒子(只需将其洒在桌子上)
- 或者只显示带有绿点的大理石(在显示之前,您需要检查每个大理石)
MySql存在内部查询问题。您需要将其更改为左连接。
请提供您的模式以获得更详细的答案。尝试以下方法:
SELECT *
FROM search s
left join search_criteria sc ON s.id = sc.search_id
left join kelformation.search ks on (s.id=ks.id)
left join search_criteria sa ON ks.id = sa.search_id
WHERE sc.deleted_at IS NOT NULL and sc.deleted_at IS NULL
AND /*Primary key of kelformation.search */ is null
GROUP BY s.id
您是否可以包含表的模式?是否启用了keysBest of all。搜索(id,term)搜索条件(id,search,id,criterias,deleted,at…)是否包含主键?