sljtfyt 2018-06-15 07:54 采纳率: 100%
浏览 10396
已采纳

SQL 两个无关的查询结果如何合并成多列

图片说明

表1字段A、B、C;表2字段D、E、F;
如何根据表1和表2信息,生成表3信息。

  • 写回答

7条回答 默认 最新

  • threenewbee 2018-06-15 08:15
    关注
     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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • threenewbee 2018-06-15 08:16
    关注

    图片说明

    评论
  • 程序员的键盘 2018-06-19 02:36
    关注

    select * from table1
    left join table2 on 1=1

    评论
  • threenewbee 2018-06-15 08:20
    关注

    图片说明

    评论
  • threenewbee 2018-06-15 08:20
    关注

    完整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];
            }
        }
    }
    
    
    评论
  • whitebrow 2018-06-21 15:15
    关注

    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;

    评论
  • threenewbee 2018-06-15 08:19
    关注

    稍微修改下

     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"
    
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 VB6.0中PICTUREBOX加载本地图片无法显示
  • ¥100 关于游戏app session获取的问题
  • ¥15 MYSQL数据库建表
  • ¥15 爬虫程序爬取TTGChina网站文章代码
  • ¥35 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
  • ¥15 如何用下图方法在AMESim中搭建离心泵模型
  • ¥15 C#连接服务器,请求时报Ssl/Tsl未能建立安全通道
  • ¥15 xcode15build的c++ dylib在10.15上不兼容
  • ¥15 CPLD如何实现在线逻辑分析
  • ¥15 控制面板卸载无权限!!