簡體   English   中英

MySQL在WHERE中使用FROM中的子查詢

[英]MySQL use subquery from FROM in WHERE

我對MySQL有疑問。 我的腳本如下所示:

SELECT *
FROM (subQuery) AS q1
WHERE
    (SELECT something
     FROM q1
     WHERE id = q1.id-1) = x;

我的問題是在最后一個子查詢中,表q1是未知的。 我該如何解決?

您無法比較結果中的行。 最好的辦法是復制子查詢,例如將其稱為q1b,然后將其連接到on q1.id - 1 = q1b.id q1; 然后在哪里有類似q1b.something = x東西(盡管也可以在ON中)

臨時表也有可能。 但您仍然需要兩個聯接,或者在where可行的情況下使用相關的子查詢。 ...如果存儲在一個真正的TEMPORARY表中,而不僅僅是存放在其中的一些“虛擬”表,則需要兩個副本。 您不能在同一查詢中兩次使用同一TEMPORARY表。

暫無
暫無

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

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