をされて使用しているところに含めることによって、 「デカルト製品」として知られています(1つのテーブルのすべてのレコードが別のテーブルのすべてのレコードに結合されています)。これは、 "ON"条件または(適切な) "WHERE"条件を指定せずにテーブルを結合すると起こります。
一般的なフィールドが3つのテーブルをリンクしているかどうかわからない場合は、a.idを使用してauctioneerslocとauctioneerscontテーブルに "auctioneers_id"というforiegnキーフィールドが存在すると仮定します。あなたの「競売」テーブルの行がは、あなたがすべき、その後、「auctioneersloc」または「auctioneerscont」の表に一致する行を必要としない場合は、もちろん
SELECT DISTINCT a.id,a.name
FROM auctioneers a
INNER JOIN auctioneersloc al ON al.auctioneers_id = a.id
INNER JOIN auctioneerscont ac ON ac.auctioneers_id = a.id
WHERE a.email LIKE "%[email protected]%"
OR ac.email LIKE "%[email protected]%"
ORDER BY name
:しかし、あなたはこのようなものをお勧めしますLEFT JOINを使用します(INNER JOINではなく)。
個人的な様式のメモの上で、私はに常にに私のJOINを明示的に指定しようとします。 FROM句のすべてのテーブルをリストするだけで動作しますが、WHERE句を使用してJOIN条件を指定します。これは、アプリケーション開発の観点からは悪い可能性があります。クエリー文字列を作成するときにWHERE句に何か問題が発生すると、デカルト積が得られます。常にJOINキーワードを指定することを覚えておくと、このような偶発的なCPからあなたを救うことができます。
助けてくれてありがとう。完璧に働いた。残念ながら、私がMySQLを愛していて、それを大好きに思っているのと同じくらい、私はジョインを読んで基本的に理解していますが、外来キーのようなMySQLの多くがそうであるように、 :( 再度、感謝します。 –