我需要创建新表,然后将某些表的某些列复制到新表中。第一张表中的三列。第二张表中的五列。第三张表中的三列。第四张表中的三列。
表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
。
我该怎么做?
答案 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
直接创建结果表否则你可以使用插入选择