2011-07-22 45 views
2

我收到此错误:#1054 - 未知列“t.mobile”在“关于条款”获得MySQL错误1054

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; 

任何人都可以请帮我解决了这一点?

谢谢。

+2

请给出表格架构! – rabudde

+2

列表'transactions'中是否存在'mobile'列? – Shef

+0

所以我们看到另一个例子,为什么SELECT *不好 – wonk0

回答

6

尝试:

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表。

+2

哇,我不知道表序列的顺序可能会有影响。很好的发现。 –

1

简而言之,表transactions中的“移动”列不存在。

+0

是的。没有太多的错误信息比这更清楚。 – ceejayoz

+2

@ScottMcGready:不,这不是。我怀疑它是唯一的,但第二眼看上去,OP正在'loyalty_members'的'vendors'表上做'LEFT JOIN',这显然不是正确的顺序。 @ceejayoz:似乎不够清楚。 :) – Shef