我的代码:
SELECT pulpi_juegos.*, mapa.cat_id AS IDcategoria
FROM pulpi_juegos
INNER JOIN pulpi_categorias_mapa AS mapa ON pulpi_juegos.id=mapa.game_id
WHERE pulpi_juegos.Estado != 1
AND IDcategoria = 15
ORDER BY pulpi_juegos.id DESC
LIMIT 0,30;
问题是我得到以下错误:
Unknown column 'IDcategoria' in 'where clause'
有人知道为什么吗?
最佳答案
SQL总是在SELECT
语句之后执行WHERE
语句。
如果我错了,请更正我,但SQL执行您的语句如下:
FROM
INNER JOIN
WHERE
AND
SELECT
ORDER BY
因此,正如您现在看到的,当SQL进入
AND
语句时,它还不知道mapa.cat_id
实际上表示为IDcategoria
。一个简单的解决方案是将IDcategoria
中的AND
更改为mapa.cat_id
。所以你的问题是:
SELECT pulpi_juegos.*, mapa.cat_id AS IDcategoria
FROM pulpi_juegos
INNER JOIN pulpi_categorias_mapa AS mapa ON pulpi_juegos.id=mapa.game_id
WHERE pulpi_juegos.Estado != 1
AND mapa.cat_id = 15
ORDER BY pulpi_juegos.id DESC
LIMIT 0,30;