簡體   English   中英

在MySQL的內部查詢中使用外部查詢的結果集

[英]Using result set from an outer query in inner query in MySQL

我有兩個表稱為“節點”和“鏈接”。 我正在執行以下查詢,它返回我想要的結果。 如何優化這一個? 我在內部查詢中使用外部查詢的結果集。 如何在內部查詢中引用外部查詢的結果集,以防止再次運行相同的外部查詢。 箭頭之間重復查詢。

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))

IN ( SELECT ... ) (表現不佳 )轉入JOIN。

SELECT  ...
    FROM  a
    WHERE  x IN (
        SELECT  x
            FROM  b
            WHERE  test_b 
                )
      AND  test_a; 

- >

SELECT  ...
    FROM  a
    JOIN  b USING(x)
    WHERE  test_a
      AND  test_b;

並且看到至少有一個表上有INDEX(x)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM