【问题标题】:getting mysql error 1054获取mysql错误1054
【发布时间】:2011-10-10 23:36:42
【问题描述】:

我收到此错误:#1054 - 'on Clause' 中的未知列 't.mobile'

SELECT t.*,v.name,v.contact_person_email,l.firstname as memname 
FROM transactions t , vendor v
LEFT JOIN loyalty_members l ON (t.mobile=l.mobile) 
WHERE t.vendor_id ='N1WU95' 
AND v.alert_mail = '2'
AND t.add_date  <= '2011-07-22 09:00:00'
AND t.add_date >= '2011-07-21 09:00:00'
AND t.vendor_id = v.id
AND t.type = '1' 
AND t.deleted != '1'
AND t.reference_id = '0'
GROUP BY t.mobile 
HAVING COUNT(t.mobile) > 1;

谁能帮我解决这个问题?

谢谢。

【问题讨论】:

  • mobile 列是否存在于表transactions 中?
  • 所以我们看到另一个为什么 SELECT * 不好的例子

标签: mysql database mysql-error-1054


【解决方案1】:

简单地说,表transactions 中的“移动”列不存在。

【讨论】:

  • @ScottMcGready:不,不是这个。我怀疑它是那个,但乍一看,OP 正在使用loyalty_membersvendors 表上执行LEFT JOIN,这显然不是正确的顺序。 @ceejayoz:似乎这还不够清楚。 :)
【解决方案2】:

试试:

   SELECT t.*, v.name, v.contact_person_email, l.firstname memname 
     FROM vendor v, transactions t
LEFT JOIN loyalty_members l ON t.mobile = l.mobile 
    WHERE t.vendor_id ='N1WU95' 
      AND v.alert_mail = '2'
      AND t.add_date  <= '2011-07-22 09:00:00' 
      AND t.add_date >= '2011-07-21 09:00:00' 
      AND t.vendor_id = v.id 
      AND t.type = '1' 
      AND t.deleted != '1' 
      AND t.reference_id = '0' 
 GROUP BY t.mobile 
   HAVING COUNT(t.mobile) > 1;

您正在使用错误的表格顺序执行LEFT JOIN。引擎试图将vendor 表与loyalty_members 表连接起来。

【讨论】:

  • 哇,我不知道表格序列的顺序会产生这种影响。很好发现。
猜你喜欢
  • 2021-05-27
  • 2016-02-07
  • 1970-01-01
  • 2018-01-06
  • 2016-04-01
  • 2012-03-09
  • 1970-01-01
  • 2016-01-04
  • 2010-11-17
相关资源
最近更新 更多