2011-07-22 20 views
2

取得:#1054 -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; 

は誰も私を助けてください「節の」の「t.mobile」不明な列がこれを解決するために?

ありがとうございました。

+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をしていました。エンジンはloyalty_membersテーブルのvendorテーブルに参加しようとしていました。

+2

うわー、私はテーブルシーケンスの順序がその影響を持つことができるか分からなかった。きれいに見つかった。 –

1

単純に、テーブルtransactionsから「モバイル」の欄には存在しません。

+0

ええ。それより多くのエラーメッセージはそれほど明瞭ではありません。 – ceejayoz

+2

@ScottMcGready:これはそうではありません。私はそれを1つと思っていましたが、2番目の一見で、OPは明らかに正しい順序ではない 'loyalty_members'というベンダーのテーブルで' LEFT JOIN'を行っています。 @ceejayoz:これは十分明確ではなかったようです。 :) – Shef

関連する問題