[英]Improve sql query to exclude items
是否可以改善以下查詢:
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內部查詢有問題。 您需要將其更改為LEFT JOIN。
提供您的架構以獲得更詳細的答案。
嘗試這個 ::
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.