我想知道是否可以设计一个查询,以便仅从一个表中获取一条记录,即我有3个表,而我的查询基于某个参数会选择一个表记录来自。
答案 0 :(得分:1)
如果所有表都具有相同的字段名称,则可以使用UNION查询并通过添加指定该行源自哪个表的字段来执行此操作:
PARAMETERS ParamTableName VARCHAR(255);
SELECT * FROM (
SELECT *, "Table1" As TableName FROM Table1
UNION ALL
SELECT *, "Table2" As TableName FROM Table2
UNION ALL
SELECT *, "Table3" As TableName FROM Table3
) TheTables
WHERE TableName = ParamTableName