2012-01-27 4 views
0

ときphpmyadmingで私が入力このクエリ私は奇妙な問題を持って返さない:私は、クエリを作ったことがないかのように私はレコードをない得るphpmyadminのすべてのレコード

SELECT DISTINCT E.* FROM Events E, TICKET T WHERE ((E.idEvent=T.IDEvent AND T.Email='[email protected]')OR (E.email = '[email protected]')) AND E.dateEvent >= '2012-01-27 20:04:28' ORDER BY E.dateEvent ASC 

を、エラーが見つかりませんか何か。以前はphpMyAdminでクエリを処理していたことを強く信じていましたが、今はローカルまたはサーバ上で動作するように見えません。 2つの異なるマシン、ローカル私はMAMPを持って、サーバーのfreshmeat_linux/Linux]で。

最も奇妙なのは、クエリがphpによって行われた場合、まったく同じDBに返されるということです。正しい値が返されます。

何が起こっているのでしょうか?

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

答えて

0

T.emailが '[email protected]'と等しくなければ、現在のクエリはデカルト積を返す危険性があります。これは、あなたのJOIN条件を含むWHEREの唯一の部分です。

あなたはあなたが登録しようと(then節が理解しやすくなり、あなたのWHEREと)このようなキーワードに述べて明示的に検討する必要があります。

SELECT DISTINCT E.* 
FROM Events E 
INNER JOIN TICKET T ON E.idEvent=T.IDEvent 
WHERE (T.Email='[email protected]' OR E.email = '[email protected]') 
     AND E.dateEvent >= '2012-01-27 20:04:28' 
ORDER BY E.dateEvent ASC 

そして両方のチケットやイベント表は、電子メールのフィールドが含まれていますか?またはそれらの1つはタイプoですか?

まず、上記のクエリを試してみてください。

+0

チップをありがとうが、それでも同じことは、何も返されないか、エラーが表示されます。 はい、どちらのテーブルにもメールフィールドがあります – subharb

関連する問題