JOIN 構文の例をたくさん読んだことがありますが、どれも私の問題には当てはまりません。
見積もり表と販売問い合わせ表があります。1回のお見積りで複数のお問い合わせになる場合もあれば、お問い合わせがない場合もあります。すべての見積もりのリストを作成し、結果として得られた問い合わせの詳細を含めたいと考えています。多くの問い合わせがあった見積もりに対して複数の結果行が予想されます。問い合わせが発生しなかった見積もりについては、問い合わせフィールドが空または null の単一の行を期待しています。
接続データは見積もりテーブルにあります。ここには、結果として発生した一部またはすべての問い合わせの ID を含む「アクティビティ」と呼ばれるフィールドがあります。新たな問い合わせが入るたびに更新されます。
だから私はこれを試しました:
SELECT q.*, e.id, e.price
FROM quotes as q
LEFT JOIN enquiries as e
ON INSTR(q.activity, e.id) >'0'
WHERE q.date > '2013-07-01'
しかし、結果のすべての行には問い合わせデータが含まれています。何の結果にもならなかった引用符を含めることができないようです。LEFT JOIN は、問い合わせに関係なくすべての引用符を提供し、一致した問い合わせデータを含めることになっていると思いました。しかし、私が見たすべての例は、a.id = b.id で結合しているだけなので、INSTR() 一致基準が混乱している可能性があると思います。