Tôi gặp sự cố. Có ba bảng: T1, T2, T_target. Bảng T1 và T2 có nhiều cột khác nhau nhưng tôi chỉ cần cột ID từ cả hai. Bảng T_target có một cột ID của khóa học và một cột khác: project_No.Chèn vào với công đoàn
Có một số ID xuất hiện trong T1 và T2, nhưng tôi không muốn tạo bản sao giữa chúng, nếu ID xuất hiện trong cả hai bảng, nó phải được chèn vào T_target chỉ một lần nhưng nếu nó đã trong T_target nó được phép hành động hai lần. Một tiêu chí khác là mỗi ID mới được chèn phải là giá trị 21 trong cột 'project_No'. Vì vậy, ví dụ .:
T1:
ID
2548
2566
2569
2843
2888
...
T2:
ID
2557
2566
2569
2700
2913
2994
3018
5426
...
T_target:
ID project_No
2976 1
3331 7
4049 7
5426 8
5915 3
6253 10
...
Và kết quả tôi muốn gia nhập e:
T_target:
ID project_No
2548 21
2557 21
2566 21
2569 21
2700 21
2843 21
2888 21
2913 21
2976 1
2994 21
2018 21
3331 7
4049 7
5426 8
5426 21
5915 3
6253 10
...
Vì vậy, tôi đã thử nó với mã này (điều quan trọng là để có mặt ở đây "NOT NULL" Tiêu chí vì cả hai cột T_target là khóa chính):
Thông báo lỗi: "Msg 512, Cấp 16, Tiểu bang 1, Dòng 2 Truy vấn con trả về nhiều hơn 1 giá trị. Điều này không được phép khi truy vấn con sau =,! =, <, < =,>,> = hoặc khi truy vấn phụ được sử dụng làm biểu thức. Những tuyên bố đã bị chấm dứt "
Sau đó, tôi đã cố gắng với GIÁ TRỊ tuyên bố thay vì là người đầu tiên và dấu ngoặc CHỌN nhưng lỗi là như nhau
Có một vấn đề tương tự:.. mySQL query: How to insert with UNION? nhưng giải pháp này doesn 't làm việc đối với tôi bởi vì nó chỉ ra lỗi cú pháp giữa GIÁ TRỊ và SELECT.
Xin vui lòng, cho tôi một tay. Cảm ơn bạn!
Tôi chưa đọc hầu hết câu hỏi của bạn, nhưng tôi nghĩ cú pháp chính xác cho truy vấn hiện tại của bạn là: 'chèn vào T_target (ID, project_No) chọn ID, 21 từ T1 trong đó ID không phải là NULL union select ID, 21 từ T2 trong đó ID không phải là NULL' – Bridge