有没有其他方法来触发此查询

时间:2012-06-27 04:44:01

标签: mysql

SELECT CategoryID, CategoryName
FROM testcategory
WHERE CategoryID NOT 
IN (
  SELECT ChildMuzeCategoryID
  FROM testsubcategory
)

第一张表包含75k 第二个表包含45k记录

3 个答案:

答案 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;