Я не уверен, что я пытаюсь сделать это возможно, но я пытался использовать разные методы для решения, которое мне нужно, но до сих пор я пришел с пустыми руками.Совет по фильтрации запросов SQL
Допустим, у меня есть 2 таблицы (только пример, в моем случае Theres ад намного больше + много больше данных)
Один называется клиентов и другой под названием form_data. У нас есть несколько клиентов в таблице клиентов, а в таблице form_data у нас есть несколько строк для каждой компании, присутствующей в таблице клиентов. В form_data хранятся сериализованные данные из разных форм. (id и data)
В настоящее время я извлекаю все записи из таблицы form_data, и я пытаюсь использовать регулярное выражение в столбце данных, чтобы, например, фильтровать, что в них найдено значение «моторное масло».
Я хотел бы сделать этот фильтр, но фильтровать компанию, а не формы. Поэтому я хочу найти формы, в которых есть «моторное масло», и удалить все записи для КОМПАНИЙ, которые не имеют этот матч, но я хочу, чтобы все формы отображались для компаний, которые соответствуют.
Я могу опубликовать свой запрос, но он довольно длинный, и я думаю, что если мы сможем решить вышеизложенное, мне должно быть достаточно для реализации в реальном запросе.
Привет
РЕДАКТИРОВАТЬ:
SELECT f.form_question_has_answer_id AS f__form_question_has_answer_id, f.form_question_has_answer_request AS f__form_question_has_answer_request,
f.form_question_has_answer_form_id AS f__form_question_has_answer_form_id, f.form_question_has_answer_user_id AS f__form_question_has_answer_user_id,
p.project_company_has_user_id AS p__project_company_has_user_id, p.project_company_has_user_project_id AS p__project_company_has_user_project_id,
p.project_company_has_user_user_id AS p__project_company_has_user_user_id, c.company_id AS c__company_id, c.company_hall_no AS c__company_hall_no,
c.company_type AS c__company_type, c.company_company_name AS c__company_company_name, c.company_country AS c__company_country,
c.company_stand_number AS c__company_stand_number, c.company_image_file_1 AS c__company_image_file_1, p2.project_id AS p2__project_id,
p2.project_name AS p2__project_name, u.user_id AS u__user_id, u.user_username AS u__user_username, f2.form_id AS f2__form_id
FROM form_question_has_answer f
INNER JOIN project_company_has_user p ON f.form_question_has_answer_user_id = p.project_company_has_user_user_id
INNER JOIN company c ON p.project_company_has_user_company_id = c.company_id
INNER JOIN project p2 ON p.project_company_has_user_project_id = p2.project_id
INNER JOIN user u ON p.project_company_has_user_user_id = u.user_id
INNER JOIN form f2 ON p.project_company_has_user_project_id = f2.form_project_id
WHERE f.form_question_has_answer_id IN ('19262', '21560', '23088', '22660', '14772', '18495', '18720', '21625', '19957', '20943')
AND ((f2.form_template_name = "custom" AND p.project_company_has_user_garbage_collection = 0 AND p.project_company_has_user_project_id = 29) AND f.form_question_has_answer_request REGEXP 'item-cadcae')
ORDER BY company_company_name asc
Этот запрос из запроса доктрины.
EDIT: Если у меня есть компания с 10 формами в таблице form_data, если я фильтрую «моторное масло», все формы для этой компании, у которых нет моторного масла, удаляются .. так что если только 1 из 10 формы для компании id 144 имеют слово моторное масло, тогда остальные 9 форм теряются в запросе. Я хочу их сохранить. Я хочу, чтобы любая компания, которая не нашла каких-либо форм с этим соответствием (моторное масло), чтобы удалить все формы из поиска.
Пожалуйста, не стесняйтесь, разместите ваш запрос. Если он длинный, люди просто его не прочитают (что лучше, чем не иметь его вообще) – Quassnoi
Также покажите образцы данных своих таблиц, чтобы узнать тип (текст, xml, int и т. Д.) Данных, с которыми мы имеем дело –
Еще лучше, поместите схему и запрос в [sqlfiddle] (http://sqlfiddle.com/). – eggyal