2009-06-04 59 views
2

我想同時在where子句中獲取並使用從MySQL中的子選擇返回的值。這可能嗎?將子查詢寫出兩次似乎是不必要的 - 但是如果需要的話,MySQL是否足夠聰明才能運行它?Mysql - 我可以讀取一個子選擇結果並在WHERE子句中使用它嗎?

我試圖不工作的情況如下:

SELECT 
    (SELECT 1 FROM table WHERE somereallycomplicatedclause = 'something') 
     AS subselectresult 
FROM content WHERE subselectresult = 1 

這會產生這樣的錯誤:

#1054 - Unknown column 'subselectresult' in 'where clause' 

感謝

回答

0

你查詢你顯示的是陌生的。你可以達到同樣的效果這樣(跨產品):

SELECT S.One 
FROM contacts, 
(SELECT DISTINCT 1 as One FROM table WHERE somereallycomplicatedclause = 'something') S 

我想你應該多說什麼你試圖解決(例如什麼是子查詢和聯繫人表之間的關係)?

+0

對不起,我過分簡化了,並且使用了錯誤的表名。它是一個內容表,該子選擇返回當前聯繫人是否可以訪問每行的部分內容。所以子選擇使用ContentId,它是我查詢的主表的主鍵。這可能是一種更乾淨的方式,但我被綁定到現有的模式中,並且查詢變得更加複雜。整個子查詢SQL由不同的代碼生成,否則我可能會使用連接。 – 2009-06-04 10:48:26

相關問題