我们需要搜索多个表(超过20个)以查找与条件匹配的记录。 它是一个Sybase数据库,我们使用JDBC执行查询。
我们需要形成一个查询,以便在单个查询执行中我们从多个表中获取所有必需的数据,并且我们不需要为所有表执行多次查询。
这些表之间没有任何关系。它们只是日志表。
示例:
表:table1,table2,table3,table4
需要获得类似于下面的数据
select column1,column2,column3,column4
from table1, table2, table3. table4
where (table1.column1 or table2.column1 or table3.column1 or table4.column1) in (1,2,3,4)
所以在我们发现的任何表中都需要获取与(1,2,3,4)匹配的id列。记录将仅出现在许多表中的任何一个表中。
答案 0 :(得分:1)
使用union
(或union all
,如果您想接受重复项)
select t1.column1, t1.column2, t1.column3, t1.column4 from table1 t1
where t1.column1 in (1, 2, 3, 4)
union
select t2.column1, t2.column2, t2.column3, t2.column4 from table2 t2
where t2.column1 in (1, 2, 3, 4)
union
...