将一些表中的某些列合并到一个新表中

时间:2017-06-13 09:34:05

标签: mysql

我需要创建新表,然后将某些表的某些列复制到新表中。第一张表中的三列。第二张表中的五列。第三张表中的三列。第四张表中的三列。

表1中的列:using System; using System.Text; using System.Linq; using System.IO; using System.Threading.Tasks; static class Program { public static void Main(string[] args) { var longString = new string(Enumerable.Repeat('x', 100000000).ToArray()); File.WriteAllText("bigFile.txt", longString, Encoding.UTF32); StreamReader fileStreamReader = new StreamReader(File.OpenRead(@"bigFile.txt")); Console.WriteLine("before calling async ReadToEnd"); var task = ReadToEnd(fileStreamReader); Console.WriteLine("after the call to ReadToEnd"); byte[] bytes = Encoding.UTF32.GetBytes(longString); StreamReader memoryStreamReader = new StreamReader(new MemoryStream(bytes)); Console.WriteLine("before calling async ReadToEnd"); var task2 = ReadToEnd(memoryStreamReader); Console.WriteLine("after the call to ReadToEnd"); fileStreamReader.Dispose(); memoryStreamReader.Dispose(); } static async Task ReadToEnd(StreamReader streamReader) { string allText = await streamReader.ReadToEndAsync(); Console.WriteLine("after await in ReadToEnd. streamReader.BaseStream.GetType(): " + streamReader.BaseStream.GetType()); } }
表二中的列:eid(primary key),first name,last name,status
表3中的列:mid(primary key), sender, subject,body,folder
表四中的列:rid(primary key) , mid ,rvalue

我该怎么做?

2 个答案:

答案 0 :(得分:1)

INSERT INTO new_table (field_1,field_2...field_n)
SELECT first_table.column_1
    ,first_table.column_2
    ,first_table.column_3
    ,second_table.column_1
    ,second_table.column_2
    ,second_table.column_3
    ,second_table.column_4
    ,second_table.column_5
    ,third_table.column_1
    ,third_table.column_2
    ,third_table.column_3
    ,fourth_table.column_1
    ,fourth_table.column_2
    ,fourth_table.column_3
FROM first_table
INNER JOIN second_table ON first_table.field_to_join = second_table.field_to_join
INNER JOIN third_table ON second_table.field_to_join = third_table.field_to_join
INNER JOIN fourth_table ON third_table.field_to_join = fourth_table.field_to_join

显然,您必须根据需要调整查询,联接/联接类型和字段。

(field_1,field_2...field_n)中,您必须指明选择查询输出的字段。

答案 1 :(得分:1)

如果表之间存在相关关系,则可以直接使用create table作为select ..

    create table your_table as 
    select 
        a.col1
        , a.col2
        , a.col3
        , b.col1
        , b.col2
        , b.col3
        , b.col5
        , c.col1
        , c.col2
        , c.col3
        , d.col1
        , d.col2
        , d.col3
    from table1 a
    inner join table2 b on a.key1 = b.key1
    inner join table3 c on a.key1 = c.key1
    inner join table4 d on a.key1 = d.key1

这将从select

直接创建结果表

否则你可以使用插入选择

相关问题