SQL 语句将表 A 和表 B 中的记录插入表 C 并带有条件

本文关键字:插入 记录 有条件 语句 和表 SQL | 更新日期: 2023-09-27 18:34:11

如果表 B

中的另一个字段与我定义的值匹配,则从表 B 插入的值应来自表 B 中的一个字段。

例:我有一个变量 - int new = 6,

  • 表 A 有字段:第一、第二、第三、第四、第六
  • 表 B 有字段:第七、第八、第九
  • 表 C 有字段:第一、第二、第三、第四、第八、第九
将表 A 中的值(第一个、第二个、第三个、第四个)插入表的 C 中,如果第八个与

存储在变量中的定义值匹配,则插入表 B 中的值(第一个、第二个、第三个、第四个)和表 B 中的值(例如变量 new)。

我已经用 C# 完成了编程。

代码

:下面的代码仅适用于将所有记录从小数表导出到数字表中。我已经尝试了对这段代码进行几次不同的调整,即。甚至添加另一个选择语句但没有成功。

sql = "INSERT INTO tablec (first, second, third, fourth, fifth) 
            SELECT first, second, third, fourth FROM tablea";

一个简单的例子会有很大帮助。

SQL 语句将表 A 和表 B 中的记录插入表 C 并带有条件

您需要一个联接,例如:

INSERT INTO tablec (first, second, third, fourth, fifth, eighth, ninth) 
    SELECT a.first, a.second, a.third, a.fourth, b.eighth, b.ninth
    FROM tablea a CROSS JOIN
         tableb b
    WHERE b.eighth = $new;

为什么不做类似的事情

SELECT A.first, A.second, A.third, A.forth, B.eighth, B.ninth 
FROM A  
INNER JOIN A on A.id = B.id
WHERE B.eighth = yourvalue

这是假设您已经设置了密钥。没有必要将数据移动到第三个表,如注释中所述,这将是重复的,这并不理想。