у меня есть 3 таблицы, tfQuestions, oeQuestions, MultQuetsions, у меня есть конкретный вопрос, и я хочу посмотреть, в какой таблице он находится. Есть ли какой-то конкретный запрос, который я могу использовать для этого? Если нет, я могу искать, если еще как:
if
SELECT question From tfquestion WHERE question = $question { if true do this}
else if
SELECT question From oequestion WHERE question = $question { if true do this}
else if
SELECT question From multquestion WHERE question = $question { if true do this}
Чтобы узнать, из какой таблицы возник вопрос, вы можете просто выбрать буквенную идентификационную строку для каждого запроса:
SELECT 'tf' AS tbl_name, question FROM tfquestions
Затем объедините три таблицы в UNION
и запрос внешнего драйвера:
SELECT tbl_name, question
FROM (
SELECT 'tf' AS tbl_name, question FROM tfquestions
UNION ALL
SELECT 'oe' AS tbl_name, question FROM oequestions
UNION ALL
SELECT 'mult' AS tbl_name, question FROM multquestions
)
WHERE question = :question
Таким образом, вам практически нужен только один запрос к базе данных, но получите соответствующий вопрос и имя исходной таблицы для него.
Но подумайте, что сказал @ rurouni88; может иметь смысл реструктурировать схему вашей базы данных, если таблицы имеют одинаковую структуру. По крайней мере, вы могли бы создать VIEW
на ваших столах, используя подход UNION.
Других решений пока нет …