Tôi cần tìm cách để thực hiện một số INSERT INTO table A
nhưng một trong các giá trị là một cái gì đó xuất phát từ tra cứu trên bảng B, cho phép tôi minh họa.Làm cách nào để chèn giá trị dựa trên tra cứu từ một bảng khác?
Tôi có 2 bảng sau:
Bảng A:
A1: String
A2: Integer value coming from table B
A3: More Data
Bảng B:
B1: String
B2: Integer Value
Ví dụ dãy A: { "Giá trị", 101 , MoreData} Hàng ví dụ B: {"Tiếng Anh", 101}
Bây giờ, tôi biết tôi cần INSERT những điều sau vào A {"Value2", "English", MoreData} nhưng rõ ràng là sẽ không hoạt động vì mong đợi một số nguyên trong cột thứ hai chứ không phải từ "tiếng Anh", vì vậy tôi cần tra cứu trong Bảng B trước.
Something như thế này:
INSERT INTO tableA (A1, A2, A3)
VALUES ("Value2", SELECT B2 FROM tableB where B1="English", MoreData);
Rõ ràng điều này không làm việc như nó vốn có ...
Bất kỳ lời đề nghị?
Không có vẻ để làm việc ... phàn nàn về cú pháp gần LỰA CHỌN. Nếu đây là cách tiếp cận tiêu chuẩn thì tôi phải có một lỗi đánh máy ở đâu đó (nhìn vào nó ngay bây giờ). Nhưng, một người bạn của tôi chỉ nói với tôi câu "Trong mệnh đề GIÁ TRỊ, bạn chỉ có thể chỉ định biến hoặc hằng số". Tôi cho rằng anh ta sai (phải có một cách) – Shaitan00
Có lẽ đó là dấu ngoặc đơn xung quanh phần 'chọn ...'? Đặc biệt trong SQL Server họ không cần thiết ở đó và có thể bất hợp pháp quá. Tuy nhiên, không biết về các sản phẩm máy chủ khác. –