是否可以改进以下查询:
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
由于
答案 0 :(得分:0)
这取决于 - 如果默认数据库是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
答案 1 :(得分:0)
考虑下一个场景:
你有一个装满大理石的盒子。什么会更快?
显示整个方框(只是将其洒在桌子上)
或仅显示带有绿点的大理石(您需要在展示之前检查每个大理石)。
现在,你似乎必须排除,所以你必须坚持下去 MySql存在内部查询问题。您需要将其更改为LEFT JOIN 提供您的架构以获得更详细的答案。
答案 2 :(得分:0)
试试这个::
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