查询多个表并将结果合并到一个存储过程的返回表中?

Sha*_*awn 0 sql select stored-procedures

我有几个不同的表,但它们都有2个同名的列.我想编写一个存储过程,搜索所有表中的一列并返回结果.想法?在SQL方面,我是相当小的.

Eri*_*lje 7

您正在寻找的操作是UNIONUNION ALL.

SELECT * FROM (
 SELECT col1, col2 FROM table1
 UNION ALL
 SELECT col1, col2 FROM table2
 UNION ALL
 SELECT col1, col2 FROM table3
) all_tables
WHERE all_tables.col1 = 'something'
Run Code Online (Sandbox Code Playgroud)

如果使用UNION而不是UNION ALL,数据库将消除可能在多个表中的重复行.如果您知道不会有任何重复,请使用,UNION ALL因为它通常要快得多.