我在MySQL中有6个这样映射的表。 (通用化/专业化)

1.Expense
2.Administrative Expense
3.Vehicle Expense
4.Machine Expense
5.Salaries
6.Purchases


费用是超类,其他是子类。引用了Expense表的主键“ expenseId”,它是其他表的主键。 ID的格式为“ EXP0001”。

我想检查给定的ID(例如“ EXP00010”)是否是管理费用或车辆费用,还是同样的费用。在这种情况下要使用什么查询?我需要找到包含给定值的子类关系的名称。

提前致谢!

最佳答案

返回行时,将表的名称选择为常量:

select * from (
  select 'Expense', * from expense
  union
  select 'Administrative Expense', * from Administrative_Expense
  union
  -- etc for all tables
) all
where expenseId = ? -- or join etc

09-12 22:19