如何从其他表中插入值?

时间:2017-06-18 22:37:40

标签: mysql sql

我需要将一些值从一个表INSERT(不是UPDATE)转换为其他

我就是这样做的:

INSERT INTO `users`(`id`) VALUES(('SELECT `id` FROM `clients` WHERE `phone_number`="+115522225500"))

但显示错误

我该如何纠正呢

干杯!

2 个答案:

答案 0 :(得分:1)

正如Elliott Frisch所说,您需要分享错误消息。 (只有这样,任何人都可以确切地知道如何帮助你) 但基本上我认为您的查询可能有任何或所有这些可能的错误:

  1. 查询中有不必要的单引号。删除所有单引号,并用单引号替换电话号码周围的双引号
  2. 该部分的返回值(当然,在处理上述(1)之后)
  3.   

    (' SELECT id FROM clients WHERE phone_number =" + 115522225500")

    如果同一电话号码出现在多个记录中,则

    可能不止一个值,这假设它不是唯一列。您可以考虑使用(SELECT TOP 1 ID from clients....

    1. select查询返回null,但Users中的列ID不允许空值。

答案 1 :(得分:0)

只需使用insert . . . select

INSERT INTO users(id) 
    SELECT id
    FROM clients
    WHERE phone_number = '115522225500';

请注意,电话号码通常是字符串,因此值应该在其周围加上单引号。