1. 程式人生 > >SQL查詢一個表中另外一個表不存在的數據-轉

SQL查詢一個表中另外一個表不存在的數據-轉

spa 使用 左連接 lec left join count tis 相對 statistic

#方法一:使用 not in ,容易理解,效率低 ~執行時間為:1.395秒~
SELECT COUNT(1) FROM ecs_goods WHERE ecs_goods.goods_id NOT IN (SELECT ecs_member_price.goods_id FROM ecs_member_price);
#方法二:使用 left join...on... , "B.ID isnull" 表示左連接之後在B.ID 字段為 null的記錄 ~執行時間:0.739秒~
SELECT COUNT(1) FROM ecs_goods LEFT JOIN ecs_member_price ON ecs_goods.goods_id=ecs_member_price.goods_id WHERE ecs_member_price.goods_id IS NULL;
#方法三:邏輯相對復雜,但是速度最快 ~執行時間: 0.570秒~
SELECT COUNT(1) FROM ecs_goods c WHERE (SELECT COUNT(1) AS num FROM ecs_member_price WHERE ecs_member_price.goods_id=ecs_goods.goods_id) = 0;

SQL查詢一個表中另外一個表不存在的數據-轉