[英]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
獲取lft
和rgt
值,只要子查詢恰好返回一條記錄即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.