[英]SQL update table based on JOIN-query
我有以下 SQL 查詢
SELECT holes.hole_x, holes.hole_y, holes.hole_z
FROM holes
LEFT OUTER JOIN shots
ON holes.tournament = shots.tournament
AND holes.course = shots.course
AND holes.year = shots.year
AND holes.round = shots.round
AND holes.hole = shots.hole
WHERE shots.end = 'hole'
AND shots.x = '0.0'
AND shots.y ='0.0'
AND shots.z = '0.0'
如何更改此查詢,以便使用holes的返回值更新shots中x
、 y
、 z
的零值?
謝謝
只需刪除 SELECT 並添加更新:
UPDATE s
SET s.x = h.hole_x, s.y = h.hole_y, s.z = h.hole_z,
FROM holes h
LEFT OUTER JOIN shots s
ON h.tournament = s.tournament
AND h.course = s.course
AND h.year = s.year
AND h.round = s.round
AND h.hole = s.hole
WHERE shots.end = 'hole'
AND s.x = '0.0'
AND s.y ='0.0'
AND s.z = '0.0'
PostgreSQL:
update shots s
set
x = h.x,
y = h.y,
z = h.z
from holes h
where
s.hole = h.hole and
s."year" = h."year" and
s.x = 0 and
s.y = 0 and
s.z = 0
SQL 服務器:
UPDATE SHOTS
SET
X = H.X,
Y = H.Y,
Z = H.Z
FROM SHOTS S
INNER JOIN HOLES H on
S.HOLE = H.HOLE
AND S.[YEAR] = H.[YEAR]
WHERE
S.X = 0 AND
S.Y = 0 AND
S.Z = 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.