Nếu bạn muốn cập nhật tất cả các hàng trong data
bảng, bạn có thể làm như sau:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
LƯU Ý:
Nếu có nhiều hàng trong nút node
có cùng giá trị cho title
, khớp với một name
trong dữ liệu node
, không thể xác định giá trị của nid
ở hàng nào trong số các hàng đó sẽ được chỉ định từ.
Nếu có các giá trị của name
trong data
bảng không được tìm thấy trong nút node
bảng (trong title
), thì giá trị NULL sẽ được gán cho id
cột.
Một số chỉnh sửa đối với truy vấn có thể sửa đổi hành vi này.
Có thể thực hiện điều này bằng cách sử dụng một truy vấn con, nhưng tôi sẽ chỉ sử dụng một phép toán nối. Tôi nghĩ bạn có thể sử dụng một truy vấn con tương quan, như sau:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)