mysql - SQL 查询产生了一个我无法解决的错误

标签 mysql sql

我正在查询以下表格:

categories
  -id
  -name
  -parent_id
  -last

products2categories
  -id
  -product_id
  -category_id

我想做的是获取记录的 category namecategory id哪个product_id在表中products2categories是 10 和 last在表中categories是 1

这是我尝试执行的查询:

SELECT `categories.id`,`categories.name` 
FROM `categories` 
JOIN `products2categories` 
ON `categories.id` = `products2categories.category_id`
WHERE `categories.last` = 1 
AND `products2categories.product_id`= 10

返回时出现以下错误:

#1054 - Unknown column 'categories.last' in 'where clause'

展示我想要得到的东西:

categories
  -id          8
  -name        "my_name"
  -parent_id   0
  -last        1

products2categories
  -id          1
  -product_id  10
  -category_id 1

我想得到 8 的 ID 作为结果和“my_name”的名称,但它必须基于表 products2categories,因为一个产品可以有多个与其相关的类别。

提前致谢!

最佳答案

替换

WHERE `categories.last` = 1 

WHERE `categories`.`last` = 1 

转义列名和表名的反引号不能用于转义表和列的组合。它必须应用于两者。

关于mysql - SQL 查询产生了一个我无法解决的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18145459/

相关文章:

java - mysql 中的用户访问被拒绝

sql - Firebird 删除 SELECT LIST 子查询上的重复行

MySQL CTE - 是否可以迭代数字范围?

SQL Server 使用 FOR XML PATH 按组连接多行

MySql Order by 未显示正确结果

mysql - 将 IF 子句从 MySQL 移植到 SQL Server 2005

mysql - SQL:查找每个运行者运行之间的平均天数

php - 如何使用 POST 将变量传递到下一页

php - MYSQL PHP : update query results in a syntax error

php - 为什么强烈建议不要使用 mysql_escape_string?