sql如何将B表中的一列值按照对应的关系复制到另A表中?

时间:2021-06-28 10:04:25
现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

17 个解决方案

#1


引用 楼主 zhw8698 的回复:
现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]

#2


{自定义16} 这个是什么意思 ?

#3


UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号

#4


消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

#5


引用 2 楼 appetizing_fish1 的回复:
{自定义16} 这个是什么意思 ?


UPDATE A
SET  ( [自定义16]= y.[卡面号]
FROM  A x
       JOIN B y ON x.[物理卡号] = y.[卡片编码]

#6


引用 3 楼 sinat_28984567 的回复:
UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。

#7


引用 1 楼 z10843087 的回复:
Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

#8


引用 6楼我是你的主体 的回复:
Quote: 引用 3 楼 sinat_28984567 的回复:

UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。
A 和B是楼主自己的表名,需要换成真是的表名

#9


你去查一下 D会员档案 为null的数据, 然 后再确认 D会员档案 为null的怎么处理

#10


引用 7 楼 zhw8698 的回复:
Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

你的真实的表名是什么,,

引用 7 楼 zhw8698 的回复:
Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

错误的原因是因为你有其他列是not null 的,用update 语法试试。
另外你的真实的表名就是A,B 吗,,如果不是要换成你自己的表名
   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]

#11


引用 8 楼 sinat_28984567 的回复:
Quote: 引用 6楼我是你的主体 的回复:
Quote: 引用 3 楼 sinat_28984567 的回复:

UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。
A 和B是楼主自己的表名,需要换成真是的表名


temp代表什么啊?

#12


引用 11 楼 zhw8698 的回复:
Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 6楼我是你的主体 的回复:
Quote: 引用 3 楼 sinat_28984567 的回复:

UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。
A 和B是楼主自己的表名,需要换成真是的表名


temp代表什么啊?


这个是别名……

#13


   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


这个换成真是的表名 把我的表A{卡片编码}全部更新为NULL

#14


引用 5 楼 appetizing_fish1 的回复:
Quote: 引用 2 楼 appetizing_fish1 的回复:

{自定义16} 这个是什么意思 ?


UPDATE A
SET  ( [自定义16]= y.[卡面号]
FROM  A x
       JOIN B y ON x.[物理卡号] = y.[卡片编码]


不试试这个 ?

#15


引用 10 楼 z10843087 的回复:
Quote: 引用 7 楼 zhw8698 的回复:

Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

你的真实的表名是什么,,

引用 7 楼 zhw8698 的回复:
Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

错误的原因是因为你有其他列是not null 的,用update 语法试试。
另外你的真实的表名就是A,B 吗,,如果不是要换成你自己的表名
   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


换update 语法   把我的表A{卡片编码}全部更新为NULL


不能将值 NULL 插入列  这是重点吧

sql如何将B表中的一列值按照对应的关系复制到另A表中?

消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

#16


引用 13 楼 zhw8698 的回复:
   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


这个换成真是的表名 把我的表A{卡片编码}全部更新为NULL

不会啊,,,这个语句只会更新[自定义16] 这一列。

#17


引用 16 楼 z10843087 的回复:
Quote: 引用 13 楼 zhw8698 的回复:

   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


这个换成真是的表名 把我的表A{卡片编码}全部更新为NULL

不会啊,,,这个语句只会更新[自定义16] 这一列。



好了 谢谢

#1


引用 楼主 zhw8698 的回复:
现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]

#2


{自定义16} 这个是什么意思 ?

#3


UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号

#4


消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

#5


引用 2 楼 appetizing_fish1 的回复:
{自定义16} 这个是什么意思 ?


UPDATE A
SET  ( [自定义16]= y.[卡面号]
FROM  A x
       JOIN B y ON x.[物理卡号] = y.[卡片编码]

#6


引用 3 楼 sinat_28984567 的回复:
UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。

#7


引用 1 楼 z10843087 的回复:
Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

#8


引用 6楼我是你的主体 的回复:
Quote: 引用 3 楼 sinat_28984567 的回复:

UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。
A 和B是楼主自己的表名,需要换成真是的表名

#9


你去查一下 D会员档案 为null的数据, 然 后再确认 D会员档案 为null的怎么处理

#10


引用 7 楼 zhw8698 的回复:
Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

你的真实的表名是什么,,

引用 7 楼 zhw8698 的回复:
Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

错误的原因是因为你有其他列是not null 的,用update 语法试试。
另外你的真实的表名就是A,B 吗,,如果不是要换成你自己的表名
   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]

#11


引用 8 楼 sinat_28984567 的回复:
Quote: 引用 6楼我是你的主体 的回复:
Quote: 引用 3 楼 sinat_28984567 的回复:

UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。
A 和B是楼主自己的表名,需要换成真是的表名


temp代表什么啊?

#12


引用 11 楼 zhw8698 的回复:
Quote: 引用 8 楼 sinat_28984567 的回复:

Quote: 引用 6楼我是你的主体 的回复:
Quote: 引用 3 楼 sinat_28984567 的回复:

UPDATE  tempa
SET     自定义16 = tempb.卡面号
FROM    A tempa ,
        B tempb
WHERE   a.卡片编码 = b.物理卡号



消息 208,级别 16,状态 1,第 1 行
对象名 'A' 无效。
A 和B是楼主自己的表名,需要换成真是的表名


temp代表什么啊?


这个是别名……

#13


   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


这个换成真是的表名 把我的表A{卡片编码}全部更新为NULL

#14


引用 5 楼 appetizing_fish1 的回复:
Quote: 引用 2 楼 appetizing_fish1 的回复:

{自定义16} 这个是什么意思 ?


UPDATE A
SET  ( [自定义16]= y.[卡面号]
FROM  A x
       JOIN B y ON x.[物理卡号] = y.[卡片编码]


不试试这个 ?

#15


引用 10 楼 z10843087 的回复:
Quote: 引用 7 楼 zhw8698 的回复:

Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

你的真实的表名是什么,,

引用 7 楼 zhw8698 的回复:
Quote: 引用 1 楼 z10843087 的回复:

Quote: 引用 楼主 zhw8698 的回复:

现在有两个数据表A,B。
B中{物理卡号}和A中{卡片编码}有相同值,要求把{物理卡号}={卡片编码}挑选出来,把挑选出的表B中{卡面号}复制到表A中的{自定义16},
SQL语言如何实现,谢谢

参考下面语句
INSERT  INTO A
        ( [自定义16]
        )
        SELECT  B.[卡面号]
        FROM    A
                JOIN B ON A.[物理卡号] = B.[卡片编码]




消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

错误的原因是因为你有其他列是not null 的,用update 语法试试。
另外你的真实的表名就是A,B 吗,,如果不是要换成你自己的表名
   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


换update 语法   把我的表A{卡片编码}全部更新为NULL


不能将值 NULL 插入列  这是重点吧

sql如何将B表中的一列值按照对应的关系复制到另A表中?

消息 515,级别 16,状态 2,第 1 行
不能将值 NULL 插入列 '编号',表 'qqq.dbo.D会员档案';列不允许有 Null 值。INSERT 失败。
语句已终止。

#16


引用 13 楼 zhw8698 的回复:
   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


这个换成真是的表名 把我的表A{卡片编码}全部更新为NULL

不会啊,,,这个语句只会更新[自定义16] 这一列。

#17


引用 16 楼 z10843087 的回复:
Quote: 引用 13 楼 zhw8698 的回复:

   UPDATE A
     SET    A.[自定义16] = B.[卡面号]
     FROM   A
            JOIN B ON A.[物理卡号] = B.[卡片编码]


这个换成真是的表名 把我的表A{卡片编码}全部更新为NULL

不会啊,,,这个语句只会更新[自定义16] 这一列。



好了 谢谢