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

最初のテーブルには 75k のレコードが含まれています 2 番目のテーブルには 45k のレコードが含まれています

4

3 に答える 3

4

参加を使用してみてください:

SELECT CategoryID, CategoryName
FROM testcategory
LEFT JOIN testsubcategory ON testcategory.CategoryID = testsubcategory.ChildMuzeCategoryID
WHERE testsubcategory.ChildMuzeCategoryID IS NULL
于 2012-06-27T04:47:28.213 に答える
0

このクエリは完全に問題ありません。実際にパフォーマンスを向上させるような書き直し方法はありません。

于 2012-06-27T04:46:23.687 に答える
0

あなたが書いたことは最善の方法であり、これ以上の方法はありませんが、私には提案があります。

testsubcategory大量の行を処理する場合は、のようなフラグがあり、テーブル1 (boolean)の更新中に更新するとよいでしょう。testsubcategoryそして、このクエリを簡単に使用できます。

SELECT `CategoryID`, `CategoryName` FROM `testcategory` WHERE NOT `testsubcategory` = 1;
于 2012-06-27T04:46:27.323 に答える