2016-11-07 89 views
0

這是一個有效的MySQL查詢,你可以使用嵌套查詢外的列的別名? (series_id_a和series_id_b是函數的輸入,這是應該在一個函數被使用)嵌套MySQL查詢列別名

select x1 as x1a, x2 as x2a, y1 as y1a, y2 as y2a FROM region WHERE series_id = series_id_a AND EXISTS(
        SELECT x1 as x1b, x2 as x2b, y1 as y1b, y2 as y2b FROM region WHERE series_id = series_id_b AND x1b = x1a AND x2b = x2a AND y1a = y1b AND y2a = y2b 
       ) 

回答

1

不,這不是有效的引用指派給在外部查詢表達式的列別名,在條件WHERE子句中。

爲了清晰起見,以及未來讀者的理智,以及所有在這個世界上美好而美好的東西...... 限定所有列參考。

至於什麼,我猜你的例子正在努力實現:

SELECT r.x1 AS x1a 
     , r.x2 AS x2a 
     , r.y1 AS y1a 
     , r.y2 AS y2a 
    FROM region r 
    WHERE r.series_id = ? -- series_id_a parameter 
    AND EXISTS (SELECT 1 
        FROM region q 
        WHERE q.series_id = ? -- series_id_b parameter 
        AND q.x1 = r.x1 
        AND q.x2 = r.x2 
        AND q.y1 = r.y1 
        AND q.y2 = r.y2 
       ) 
+0

這是有道理的,我知道排位賽卻不得不線索,你可以像嵌套查詢中出線。感謝和抱歉打擾。 –