MYSQL查询语法-未知列错误,但列存在

MYSQL查询语法-未知列错误,但列存在,mysql,sql,Mysql,Sql,此查询有什么问题: SELECT * FROM families f JOIN family_histories fh ON f.id = fh.family_id WHERE f.family_status_cat_id = 1422 AND (SELECT hst.created_at FROM family_histories hst WHERE hst.family_history_cat_id = 1422 AND hst.new_value LIK

此查询有什么问题:

SELECT * 
FROM families f JOIN family_histories fh ON f.id = fh.family_id
WHERE f.family_status_cat_id = 1422
AND (SELECT hst.created_at
     FROM family_histories hst 
     WHERE hst.family_history_cat_id = 1422 
     AND hst.new_value LIKE '%1422%')
BETWEEN '2010/2/13' AND '2013/3/6'
我得到-

“where子句”中的未知列“hst.new_value”

。 但是这个栏目是存在的

试试这个查询-

SELECT * FROM families f
  JOIN family_histories fh
    ON f.id = fh.family_id
WHERE
  f.family_status_cat_id = 1422 AND
  fh.created_at BETWEEN '2010-02-13' AND '2013-03-06' AND
  fh.family_history_cat_id = 1422 AND
  fh.new_value LIKE '%1422%'

这就是您想要的吗?

如果列名是new\u val,那么您应该有下面的查询

SELECT * FROM families f
JOIN family_histories fh
ON f.id = fh.family_id
WHERE
 f.family_status_cat_id = 1422 AND
 fh.created_at BETWEEN '2010-02-13' AND '2013-03-06' AND
 fh.family_history_cat_id = 1422 AND
 fh.new_val LIKE '%1422%'

您不需要第二次选择当前查询中的内容。这与Devart提到的查询相同。

这只是意味着
家族历史记录
没有名为
新值的列
如果删除条件“和hst.new值(如“%1422%”),会发生什么情况?它是否仍会给您错误?语法不正确。。。联接表和之间的子句
未连接。最后一个右括号不应存在。复制/粘贴错误?我认为您不需要子查询,因为您已经将families表与family_histories表联接在一起了。你想用子查询做什么。语法也是错误的。如@Justin所述