mySQL'无效列'错误

时间:2012-04-13 23:47:49

标签: mysql inner-join

我正试图在'products'表中满足条件时在表'products_to_categories'中插入关系(master_categories_id = 500)我的猜测是因为我的SELECT语句应该是JOIN?

table: products_to_categories
columns: products_id, categories_id

table: products
columns: products_id, master_categories_id

INSERT INTO products_to_categories (products_id, categories_id)  
SELECT products.products_id, 500 FROM products  
WHERE products.master_categories_id=500 HAVING count(categories_id) < 1;

错误返回:categories_id is an invalid column

2 个答案:

答案 0 :(得分:1)

几种方式:

SELECT products.products_id, 500, products.categories_id FROM products
WHERE products.master_categories_id=500 HAVING count(categories_id) < 1;

或者

SELECT products.products_id, 500, count(products.categories_id) as cat_count FROM products
WHERE products.master_categories_id=500 HAVING cat_count < 1;

答案 1 :(得分:1)

categories_id列需要在SELECT的其中一个表格中提供。在这种情况下,只有products,因此唯一有效的列是products_idmaster_categories_id