Я пытаюсь создать систему на PHP, где я могу отправлять автоматические ответы на основе информации из своих заказов и требований для этих ответов. Например, если клиент имеет заказ с product_id 20,30 и 40 в нем. Я хочу, чтобы иметь возможность задать один из ответов, выполнить проверку, если она соответствует, а затем отправить соответствующий ответ.
В настоящее время существует две таблицы: одна для самого сообщения и одна для требований, связанных с этими сообщениями.
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
Проникновение всех доступных ответов и их соответствие не являются предпочтительными, так как я не знаю, сколько ответов / требований будет установлено в будущем. Именно поэтому я пытаюсь получить соответствующий ответ на основе известных идентификаторов продуктов, показанных во второй таблице, как options_ids.
Запрос будет построен на PHP. Я, скорее всего, сделаю imode или построю запрос на основе информации из самого заказа. Я просто пытаюсь разобраться с частью 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
Это приводит к чему-то близкому к тому, что я хочу. Этот запрос возвращает answer_ids
1 2
В этом случае 2 выскочил, потому что он соответствовал одному из option_id, указанному в подзапросе.
Мой желаемый результат будет получать одно соответствие answer_id с параметром option_ids. Я вижу, что это может быть немного от того, как я создал структуру для этой конкретной системы. Но в будущем будет проверено несколько параметров option_types. Прямо сейчас я пытаюсь сделать проверку только для product_id, в PHP я могу настроить несколько запросов для разных параметров option_types, поэтому убедитесь, что все соответствует.
Я надеюсь, что я разместил достаточно актуальную информацию здесь, если не сообщите мне, чтобы я мог предоставить больше. И благодарю вас за то, что вы заранее просмотрели это.