PHPのシステムを作成しようとしています。ここでは、注文の情報とこれらの回答の要件に基づいて自動回答を送信することができます。たとえば、顧客がproduct_id 20,30、および40の注文を受けているとします。私は答えの1つの要件を設定し、それが一致するかどうかをチェックして、それに対応する答えを送信できるようにしたいと考えています。多対1の状況で複数のIDに基づいて列から一意の値を選択する方法を教えてください。
現在、メッセージ自体とこれらのメッセージにリンクされている要件の2つのテーブルがあります。
tickets_answers、利用可能なすべての答えをループ
id name message
1 Test 1 This is the first test message.
2 Test 2 Another test message
tickets_answers_options
id answer_id option_type option_id
1 1 product_id 20
2 1 product_id 30
3 1 product_id 40
4 2 product_id 25
5 2 product_id 30
とそれらが一致するかどうかを確認し、私は将来的に設定されますどのように多くの答え/要件を知らないので、好ましいものではありません。これは、2番目の表に示す既知のプロダクトIDに基づいて、対応する回答をoption_idsとして取得しようとしている理由です。
クエリはPHPで構築されます。私は、おそらく爆縮を行うか、オーダー自体の情報に基づいてクエリを構築します。私は今のところSQL部分を整理しようとしています。
私は
answer_idを取得するために、次のクエリを試してみましたSELECT answer_id
FROM tickets_answers_options
WHERE option_id IN (SELECT option_id
FROM tickets_answers_options
WHERE option_type = 'product_id'
AND option_id = 20
OR option_id = 30
OR option_id = 40)
GROUP BY answer_id
これは私が欲しいものに近いものになります。それは、サブクエリで述べoption_idのいずれかと一致するため、このクエリanswer_ids
を返し1
2
は、この場合2がポップアップ。
私の望む結果は、option_idsにマッチする単一のanswer_idを得ることです。 これは、私がこの特定のシステムの構造をどのように設定したのか、少し後であるかもしれません。しかし、将来、チェックするoption_typeは複数あります。今、私はproduct_idだけのチェックをしようとしています。PHPでは、異なるoption_typesに対して複数のクエリを設定できるので、すべてが一致するようにしてください。
私はここに十分な関連情報を掲載したいと思っています。もし私がもっと多くを提供できるように私に知らせてください。そして、これを見て前もってあなたの時間をありがとう。
私の構造はまずはエレガントではありませんでした。それは完全に単一のanswer_idを返しました!幸いにも私はPHPでクエリを構築しており、これらを簡単に生成できます。私は明日このクエリでいくつかのさらなるテストを行い、それが他のいくつかの状況に耐えているかどうかを調べるつもりです。あなたの時間をありがとう。 – Rimble
@Rimble - より良いオプションのために数秒で編集を参照 – Galz
完璧と思われます。プロダクトIDをソートすることは問題ではありません。再度、感謝します! – Rimble