联合两个全选查询时超时



我试图将两个SQL查询联合在一起,大致如下:

SELECT *, "table1" as table_name
FROM table_one
INNER JOIN
another_table_one
ON
another_table_one.id = table_one.id
UNION
SELECT *, "table2" as table_name
FROM table_two
INNER JOIN
another_table_two
ON
another_table_two.id = table_two.id 

单独运行这两个查询运行良好,并以相同的顺序返回相同的列,但当我将它们联合在一起时,它将在60秒后超时。如果你们中有人能帮忙,我将不胜感激!

我使用的数据库是MySQL,单个查询返回10列,我认为这与返回的行数无关,因为我试图将行数限制在10,但仍然超时。

使用UNION ALLUNION会产生删除重复项的开销。这在两个结果集之间是不必要的(因为最后一列不同(,在每个结果集中可能也是不必要的。

因此:

SELECT *, 'table1' as table_name
FROM table_one INNER JOIN
another_table_one
ON another_table_one.id = table_one.id
UNION ALL
SELECT *, 'table2' as table_name
FROM table_two INNER JOIN
another_table_two
ON another_table_two.id = table_two.id 

SELECT a.*,'table1'AS tblname FROM(SELECT*FROM table_one内部联接另一个表在another_table_one.id=table_one.id(AS"a"联合

选择b.*,'table2'作为tblname FROM(

选择*FROM table_two内部联接另一个表两个在another_table_two.id=table_two.id(AS'b'

最新更新