0

我收到以下错误:

1052 - 字段列表中的列“product_id”不明确

当我运行以下命令时:

SELECT `product_id`, `product_name`
FROM `products`
INNER JOIN `products_has_product_category`
   ON `products.product_id` = `products_has_product_category.product_id`
   AND `products_has_product_category.category_id` = 1
ORDER BY `products.product_name`

我的PRODUCTS桌子有

product_id, product_name, etc 

我的products_has_product_category桌子有

product_id, category_id

这是我第一次尝试加入,所以我很感激帮助!

4

2 回答 2

1

您需要指定product_id来自哪个表。由于product_id在两个表中,当您使用SELECT它时,您需要指定要从哪个表中获取值。使用表别名:

SELECT p.product_id, p.product_name
FROM `products` p
INNER JOIN `products_has_product_category` pc
    ON p.product_id = pc.product_id
    AND pc.category_id = 1
ORDER BY p.product_name

没有表别名:

SELECT `products`.`product_id`, `products`.`product_name`
FROM `products`
INNER JOIN `products_has_product_category`
  ON `products.product_id` = `products_has_product_category.product_id`
  AND `products_has_product_category.category_id` = 1
ORDER BY `products.product_name`
于 2012-10-09T22:24:09.960 回答
0

如果我正确理解您的意图,您可能指的是 WHERE 而不是 AND:

SELECT `products`.`product_id`, `products`.`product_name`
          FROM `products`
          INNER JOIN `products_has_product_category`
          ON `products.product_id` = `products_has_product_category.product_id`
          WHERE `products_has_product_category.category_id` = 1
          ORDER BY `products.product_name`
于 2012-10-09T22:24:17.497 回答