如何使用插入和选择语句

Posted

技术标签:

【中文标题】如何使用插入和选择语句【英文标题】:how to use insert and select statement 【发布时间】:2018-07-24 04:47:52 【问题描述】:

我们面临一个大问题我们如何将值从 1 列插入到同一张表的另一列

  SELECT *
From (
SELECT  answers.latitude as first_lat,answers.longitude as first_long ,answers.id as first_column  from answers  WHERE answers.question_id=142 and answers.survey_id=194
) as c1,
(
SELECT  answers.latitude as second_lat,answers.longitude as second_long ,answers.id   as second_column from answers  WHERE answers.question_id=146 and answers.survey_id=194
    ) as c2
    where first_column+1=second_column

我上面的查询有以下结果但是现在我们面临的问题是如何插入值 second_lat 到第一个 lat ,long

希望对您有所帮助 实际表结构 这是数据库 146 和 142 中的两个对流行 Question_id 146 有 lat ,long 我们想将 lat ,long 从 146 移动到 142

  id       question_id ,lat,long
   1     146 ,22.2222.11.1111
   2    142,0,0 
   3     146 ,22.2222.11.1111
   4    142,0,0 

提前致谢

【问题讨论】:

为什么将行转换为列也可以在行中实现? 【参考方案1】:

更新是做到这一点的方法 如下所示。您可能需要运行两个查询,一个查询经度,一个查询纬度。 UPDATE 答案 t1 SET t1.longitude = (SELECT t2.longitude FROM answers t2 WHERE t1.rownum + 1 = t2.rownum)

根据您使用的数据库,rownum 可能不同

【讨论】:

【参考方案2】:

试试这个:

update answers as a1, answers as a2
  set a1.latitude=a2.latitude,
  a1.longitude=a2.longitude
where a1.id+1=a2.id
  and a1.question_id=142
  and a2.question_id=146
  and a1.survey_id=194
  and a2.survey_id=194

【讨论】:

以上是关于如何使用插入和选择语句的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 SQL 插入语句的目标表?

如何选择last_insert_id?

如何将存储过程的结果返回到用于插入记录的选择语句

插入星型模式

如何在 select 语句的列列表中使用存储过程的结果?

使用选择和连接的复杂插入语句