我有3个表,tfQuestions,oeQuestions,MultQuetsions,我有一个特定的问题,我想看看它在哪个表中。是否有任何特定的查询我可以用来做这个?如果没有,我可以使用if else搜索:
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}
答案 0 :(得分:1)
要找出哪个表来自哪个问题,您只需为每个查询选择一个文字识别字符串:
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说的话;如果表格具有相同的结构,那么重构数据库方案可能是有意义的。至少你可以使用UNION方法在你的表上创建VIEW
。