簡體   English   中英

如何在另一個查詢中使用一個查詢的結果

[英]How to use result of one query in another query

我有一個查詢

SELECT lft,rgt
FROM  `navigation` 
WHERE  `slug` =  'case-studies';

該查詢的輸出
ft rgt
28 89

現在我想在同一表的另一個查詢中使用此結果

SELECT * FROM `navigation` WHERE `lft` between 28 and 89

但是我想動態地執行此操作,這樣我就不需要傳遞“ left”,“ right”
一次又一次的重視
現在我想知道,我該怎么做下面的事情。

SELECT * FROM `navigation` WHERE `lft` between :lft and :rgt

您可以使用自聯接:

SELECT t1.*
FROM `navigation` t1
INNER JOIN `navigation` t2
ON t1.`lft` between t2.`lft` and t2.`rgt`
WHERE t2.`slug` =  'case-studies';

嘗試這個:

SELECT n.* 
FROM `navigation` AS n
CROSS JOIN (
   SELECT lft, rgt
   FROM  `navigation` 
   WHERE  `slug` =  'case-studies') AS t
WHERE n.`lft` between t.lft and t.rgt

您可以使用此CROSS JOIN獲取lftrgt值,只要子查詢恰好返回一條記錄即可。

暫無
暫無

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

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