У меня есть несколько запросов, которые работают хорошо отдельно. Каждый из этих запросов относится к другому типу фильтра, который пользователь может захотеть использовать при поиске результатов. Каждый из запросов получает одинаковые столбцы из 5 таблиц в базе данных. Что я хотел бы получить, так это использовать фильтры кумулятивно (т. Е. Возможность поиска по периоду даты, имени и т. Д. Или по месту и статусу)
У меня проблемы с соединением отдельных запросов, чтобы результаты одного из них можно было использовать в качестве отправной точки для следующего запроса. Я прочитал о пересечении и как это достигается в MySQL, но я не думаю, что хочу этого, потому что для этого мне нужно было бы выполнить все мои запросы полностью, а затем найти пересечения, которые заняли бы много времени.
Я хочу начать с запроса, который, по моему мнению, будет наименьшим, а затем получить результаты, а затем использовать эти результаты в качестве отправной точки для следующего запроса. Это может быть разницей между следующим запросом, требующим поиска в нескольких таблицах по 5000 записей для каждого фильтра, или снижением результата до менее чем 200 запросов и следующим запросом, уже имеющим размеченную таблицу для работы.
Я думал, что смогу использовать такой синтаксис, как:
SELECT * FROM
(SELECT * FROM table1, table2, table3 WHERE DATE(trans_date)
BETWEEN DATE(from_date) AND DATE(to_date)
FROM (SELECT * FROM table1, table2, table3
WHERE name = "Joe" AND lname = "Bloggs"))
WHERE status = "Open"
Возможно ли это?
Большое спасибо