2013-05-22 42 views
6

Tôi có hai cơ sở dữ liệu và tôi muốn cập nhật một bảng với các giá trị từ một bảng cơ sở dữ liệu khác. Tôi đang sử dụng truy vấn sau nhưng nó không hoạt động.Cập nhật bảng mysql với truy vấn chọn từ cơ sở dữ liệu khác

UPDATE database1.table1 
SET field2 = database2.table1.field2 
WHERE database1.table1.field1 = database2.table1.field1 

Tôi cũng đã thử các truy vấn sau đây nhưng nó không hoạt động hoặc là:

UPDATE database1.table1 
SET field2 = "SELECT field2 FROM database2.table1" 
WHERE database1.table1.field1 = database2.table1.field1 

Trả lời

12

UPDATE 1

dựa trên your comment, markup nên là một phần của kết nối. Dưới đây là điều đúng:

UPDATE oman.ProductMaster_T 
    INNER JOIN main.ProductMaster_T 
     ON main.ProductMaster_T.ProductID = oman.ProductMaster_T.ProductID 
SET oman.ProductMaster_T.Markup = main.ProductMaster_T.Markup 

thậm chí bạn có thể thêm một ALIAS để đơn giản hóa các tuyên bố,

UPDATE oman.ProductMaster_T o 
    INNER JOIN main.ProductMaster_T m 
     ON m.ProductID = o.ProductID 
SET o.Markup = m.Markup 
+0

tôi đã cố gắng truy vấn này, truy vấn chạy không có hàng thực hiện. – mmdel

+0

"UPDATE oman.ProductMaster_T.Markup INNER JOIN main.ProductMaster_T ON main.ProductMaster_T.ProductID = oman.ProductMaster_T.ProductID SET oman.ProductMaster_T.Markup = main.ProductMaster_T.Markup" PL. TƯ VẤN TÔI KHI TÔI ĐANG BÃI VIẾT – mmdel

+0

'oman.ProductMaster_T.Markup' - 'Đánh dấu' là gì? tên bảng hoặc tên cột? –

Các vấn đề liên quan