表1字段A、B、C;表2字段D、E、F;
如何根据表1和表2信息,生成表3信息。
select a.*, b.* from (select ROW_NUMBER() over(order by A) as id, * from table1) a
left join (select ROW_NUMBER() over(order by D) as id, * from table2) b on a.id = b.id
select * from table1
left join table2 on 1=1
完整C#代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Q692230
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=\"C:\\Documents and Settings\\user1\\My Documents\\Q692230DB.mdf\";Integrated Security=True;Connect Timeout=30;User Instance=True");
conn.Open();
string sql =
@"select a.A, a.B, a.C, b.D, b.E, b.F from (select ROW_NUMBER() over(order by A) as id, * from table1) a
left join (select ROW_NUMBER() over(order by D) as id, * from table2) b on a.id = b.id";
SqlCommand cmd = new SqlCommand(sql, conn);
DataSet ds = new DataSet();
SqlDataAdapter ad = new SqlDataAdapter(cmd);
ad.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
}
}
mysql亲测可用, 其中 order by ... limit 10, 可以去掉不用的。
select X.A, X.B, X.C, Y.D, Y.E, Y.F from
(Select (@rowNum:=@rowNum+1) as rowNo, A, B, C
From t1, (Select (@rowNum :=0) ) x1
Order by t1.id desc limit 10) X
left join
(Select (@rowNum2:=@rowNum2+1) as rowNo, D, E, F
From t2,
(Select (@rowNum2 :=0) ) y1
Order by t2.id desc limit 10) Y
on X.rowNo = Y.rowNo;
稍微修改下
select a.A, a.B, a.C, b.D, b.E, b.F from (select ROW_NUMBER() over(order by A) as id, * from table1) a
left join (select ROW_NUMBER() over(order by D) as id, * from table2) b on a.id = b.id"