我確實使用舊式表示法進行工作。如何使用三個表更新JOIN
UPDATE
route_sources rs
SET
has_route = false
FROM avl a1, avl a2
WHERE rs.avl_id_begin = a1.avl_id
AND rs.avl_id_end = a2.avl_id
AND 0 IN (a1.azimuth, a2.azimuth)
但不知道是否可以使用顯式連接sintaxis來寫:
UPDATE
route_sources rs
SET
has_route = false
FROM avl a1
JOIN avl a2
ON rs.avl_id_end = a2.avl_id <= this doesnt work
WHERE rs.avl_id_begin = a1.avl_id
AND 0 IN (a1.azimuth, a2.azimuth)
ERROR: referencia a la entrada de la cláusula FROM para la tabla «rs» no válida
LINE 10: ON rs.avl_id_end = a2.avl_id
^
HINT: Hay una entrada para la tabla «rs», pero no puede ser referenciada desde esta parte de la consulta.
轉換爲類似。
參考rs
在FROM
clausule無效。提示:有一個條目rs
,但無法在查詢的這一部分參考。
也嘗試使用全名而不是別名,但都沒有工作。
請使用http://www.rextester.com準備的樣本數據。如何在cte中進行連接(3個表格),然後使用目標表格和cte進行更新? – lad2025
@ lad2025 Rexter心不是我的工作,我想補充dbFiddle代替 –
'WITH AS CTE( SELECT rs.route_source_id FROM route_sources RS JOIN AVL A1 ON rs.avl_id_begin = a1.avl_id JOIN AVL A2 ON rs.avl_id_end = a2.avl_id WHERE 0 IN(a1.azimuth,a2.azimuth) ) UPDATE route_sources室溫 SET has_route =假 FROM CTEç WHERE c.route_source_id = rt.route_source_id' – lad2025