简单查询,巨大的表格

时间:2015-11-03 10:25:29

标签: mysql sql

我有两张桌子:

  • 产品(53k行)
  • 产品类别(170k行)

我正在尝试使用此查询查找未分类的产品:

SELECT * FROM `jp_harley_products` 
WHERE product_id NOT IN
      (SELECT p_cat_product_id 
FROM jp_harley_product_cats )

也尝试了这个:

SELECT p.product_id,pc.p_cat_product_id
FROM `jp_harley_products` p 
LEFT JOIN `jp_harley_product_cats` pc on pc.p_cat_product_id = p.product_id

我的PHPmyAdmin无法处理此问题,因为它没有显示任何结果。 在harley_product_cats中,我有以下列:产品ID,Cat ID ,所以基本上我想要获得与 harley_product_cats 无关的产品

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您需要为IS NULL一个LEFT JOIN添加一个工作。

SELECT p.product_id, pc.p_cat_product_id
FROM `jp_harley_products` p 
LEFT JOIN `jp_harley_product_cats` pc on pc.p_cat_product_id = p.product_id
WHERE p.product_id IS NULL

或尝试使用WHERE NOT EXISTS

SELECT p.product_id, pc.p_cat_product_id
FROM `jp_harley_products` p 
WHERE NOT EXISTS (SELECT 1 FROM jp_harley_product_cats pc WHERE p.product_id = pc.p_cat_product_id );