在MySQL的内部查询中使用外部查询的结果集
我有两个名为节点和链接的表。我正在执行以下查询,它返回我想要的结果。如何优化这个?我正在内部查询中使用外部查询的结果集。如何在内部查询中引用外部查询的结果集,以防止再次运行相同的外部查询。箭头之间的重复查询在MySQL的内部查询中使用外部查询的结果集,mysql,resultset,correlated-subquery,derived-table,Mysql,Resultset,Correlated Subquery,Derived Table,我有两个名为节点和链接的表。我正在执行以下查询,它返回我想要的结果。如何优化这个?我正在内部查询中使用外部查询的结果集。如何在内部查询中引用外部查询的结果集,以防止再次运行相同的外部查询。箭头之间的重复查询 SELECT * FROM nodes where name = 'Compost' union all -> SELECT * FROM nodes where id in ( SELECT target from links where source in ( SEL
SELECT * FROM nodes where name = 'Compost' union all
-> SELECT * FROM nodes where id in
( SELECT target from links where source in
( SELECT id FROM (SELECT * FROM nodes where name = 'Compost' <- ) as a)) union all SELECT * FROM nodes where id in
( SELECT target from links where source in (SELECT id FROM ( -> SELECT * FROM nodes where id in ( SELECT target from links where source in
( SELECT id FROM (SELECT * FROM nodes where name = 'Compost'<- ) as c))) as b))
上交选择,表现不佳的,加入
SELECT ...
FROM a
WHERE x IN (
SELECT x
FROM b
WHERE test_b
)
AND test_a;
->
并确保至少有一个表上有INDEXx
SELECT ...
FROM a
JOIN b USING(x)
WHERE test_a
AND test_b;