从具有不同列的多个表中进行选择

时间:2012-07-03 20:49:53

标签: sql inheritance database-design

说我得到了这个SQL架构。

表格工作:

id,title, type, is_enabled

表JobFileCopy:

job_id,from_path,to_path

表JobFileDelete:

job_id, file_path

表JobStartProcess:

job_id, file_path, arguments, working_directory

还有许多其他表具有不同数量的列,它们都有外键job_id,它链接到表Job中的id。

我的问题:
这是正确的方法吗?我没有要求随时删除任何内容。我将要求主要选择和插入。

其次,从单个数据库命中的所有不同表中获取具有相关详细信息的作业列表的最佳方法是什么?例如,我想选择前20个具有详细信息的作业,它们的详细信息可以在任何表中(取决于表Job中的列类型),直到运行时我才知道。

1 个答案:

答案 0 :(得分:0)

select (case when type = 'type1' then (select field from table1) else (select field from table2) end) as a from table;

它可以成为您的解决方案吗?