2011-07-11 69 views
0

下面的MySQL查詢...MySQL查詢與次數,使錯誤

SELECT a.*, b.*, 
     ( 
      SELECT COUNT(*) 
      FROM lp_units c 
      WHERE c.property_id = a.property_id 
     ) AS unitcount 
FROM lp_property a, 
    lp_property_confidential b 
WHERE a.property_id = b.property_id 
AND c.unitcount<= a.no_of_units 
AND a.account_id = '1' 

返回一個錯誤......

Unknown column 'c.unitcount' in 'where clause' 

我覺得我的查詢是可以理解的。解決它運行....

在此先感謝...

+5

子查詢有它自己的範圍。 – bernie

+0

但我想比較'unitcounts'請說任何替代解決方案@Adam –

+0

延長Adam的評論:把檢查放在子查詢中。 – Jacob

回答

1

不要使用c.unitcount。只需unitcountunitcount不是c的列,而是由子查詢生成的臨時表。

但是,無論如何,這個查詢可能更好地寫入連接。

嘗試此查詢

SELECT 
    a.*, 
    b.*, 
    COUNT(c.property_id) as unitcount 
    FROM lp_property a 
    JOIN lp_property_confidential b ON a.property_id = b.property_id 
    JOIN lp_units c ON c.property_id = a.property_id 
    WHERE 
    a.account_id = '1' 
    GROUP BY a.property_id 
    HAVING unitcount <= a.no_of_units 
+0

感謝michael給出清晰的描述性查詢... –

+0

沒問題。很高興我能幫上忙! –