SELECT CategoryID, CategoryName
FROM testcategory
WHERE CategoryID NOT
IN (
SELECT ChildMuzeCategoryID
FROM testsubcategory
)
第一张表包含75k 第二个表包含45k记录
答案 0 :(得分:4)
尝试使用join:
SELECT CategoryID, CategoryName
FROM testcategory
LEFT JOIN testsubcategory ON testcategory.CategoryID = testsubcategory.ChildMuzeCategoryID
WHERE testsubcategory.ChildMuzeCategoryID IS NULL
答案 1 :(得分:0)
这个查询完全没问题,没有办法重写它实际上会让它更好地执行。
答案 2 :(得分:0)
你所写的是最好的方法,没有更好的方法,但我有一个建议:
因为在处理大量行时,如果你有一些像testsubcategory
这样的标志会更好,并在更新1 (boolean)
表时将其更新为testsubcategory
。我们可以轻松使用此查询:
SELECT `CategoryID`, `CategoryName` FROM `testcategory` WHERE NOT `testsubcategory` = 1;