0
我想創建一個包含計數的列,但問題是我重新使用子查詢的位置,因爲它以前創建的臨時表變得不可用,因爲它不再存在。存儲子查詢結果作爲列別名重用
我的問題是我如何存儲以前的子查詢的結果,所以我可以稍後在同一個查詢中運行一些結果?
首先用於計數我有:
CREATE TEMPORARY TABLE _temp_unique_entity_manufacturers
(
entityId INT(11),
manufacturerRef INT(11),
manufacturerName VARCHAR(255),
KEY(entityId),
KEY(manufacturerRef)
)
ENGINE=MEMORY AS
(SELECT DISTINCT entityRef AS entityId, manufacturer AS manufacturerRef, pm.name AS manufacturerName FROM enquiries, parts_trading, parts_manufacturers AS pm WHERE manufacturer = pm.id AND enquiryRef = enquiries.id)
然後在我的主查詢我這個表的工作,特別是這部分:
IF((SELECT COUNT(*) FROM _temp_unique_entity_manufacturers WHERE entityId = eo.id) > 0,
(SELECT COUNT(*) FROM _temp_unique_entity_manufacturers WHERE entityId = eo.id),
0
) AS manufacturers
第二子查詢失敗,因爲臨時表是在這一點上走了。有沒有一種方法,我不必一次又一次寫出相同的子查詢?
'eo.id'來自哪裏的子查詢? –