我有个问题。有三个表:T1,T2,T_target。T1和T2表有很多不同的列,但我只需要两者中的列ID列。T_target表具有一个ID当然,还有另一个:列:project_No。 # i% U6 t' {0 V) b" a, b7 RT1和T有些也出现在二中ID,但如果是一个,我不想在它们之间创建重复项ID同时出现在两个表中,只需插入即可T_target一次,但如果已经在了T_target中间,允许两次行动。另一个条件是每个新插入的条件是ID在“9 r5 N! O: S5 o+ n; H( s% B1 \
project_No列中的值必须是21。因此,例如: / t) P/ r( I+ D6 uT1: # \4 r* H, b5 E8 DID25482566256928432888...T2:: F1 w- _6 o7 q4 i- [
ID25572566256927002913299430185426...T_target: $ K" B6 t$ S) d( E6 P, I9 QID project_No2976 1331 74049 75426 85915 36253 1010...我想看的结果是: + @7 r5 W1 {, g3 y0 l, E. S" AT_target: ! ]& C0 K3 F, RID project_No2548 212557 2125666 212700 2127700 212843 2128888 212888 212913 212976 212944 212018 213331 74049 75426 85426 85426 215915 362535 212566666665 ...因此,我尝试使用这个代码(在这里使用 NOT NULL因为两个条件很重要T_target列都是主键): 8 q' {* p* |5 x2 T* {insert into T_target (ID,project_No) select (select ID from T1 where ID is not NULL union select ID from T2 where ID is not NULL),21select * from T_target错误消息: “消息512,级别16,状态1,行2子查询返回的值大于1。当子查询遵循=,!=,,> " d/ N5 \( v5 @2 t- ~=或者当子查询被用作表达式。这个句子已经终止了。# w' F5 U1 Q. Z
然后,我试着用VALUES句子不是第一个SELECT括号,但错误是一样的。 9 |7 H- x2 s {9 C8 j; g7 g谢谢!1 P; H1 \) G1 r y
7 c( X1 ?2 y# R( `解决方案: 9 W: X! P3 l- L3 O- [2 r, M 这应该是你需要的6 A6 z+ o4 d/ z) x: K8 v9 x% b i
INSERT INTO T_target (ID, project_No)SELECT ID, 21FROM T1WHERE ID IS NOT NULLUNIONSELECT ID, 21FROM T2WHERE ID IS NOT NULL