MySQL组合多个表的列

MySQL组合多个表的列,mysql,sql,select,Mysql,Sql,Select,我有两张表,如下所示: 表1: 表2: age --- 1 4 我想将它们合并到第一个表(表1)中,如下所示 (它们的行数相同)我如何组合它们?也许你想要这个 SELECT a.Name, a.SurName, b.Age FROM ( SELECT @row := @row + 1 RankNo, Name, Surname FROM Table1, (SELECT @row := 0) r ) a INNER JOIN (

我有两张表,如下所示: 表1:

表2:

age
---
 1 
 4
我想将它们合并到第一个表(表1)中,如下所示

(它们的行数相同)我如何组合它们?

也许你想要这个

SELECT a.Name, a.SurName, b.Age
FROM
  (
    SELECT @row := @row + 1 RankNo,
           Name, Surname
    FROM   Table1, (SELECT @row := 0) r
  ) a
  INNER JOIN
  (
    SELECT @row1 := @row1 + 1 RankNo,
           Age
    FROM   Table2, (SELECT @row1 := 0) r
  ) b ON a.RankNo = b.RankNo
    • 也许你想要这个

      SELECT a.Name, a.SurName, b.Age
      FROM
        (
          SELECT @row := @row + 1 RankNo,
                 Name, Surname
          FROM   Table1, (SELECT @row := 0) r
        ) a
        INNER JOIN
        (
          SELECT @row1 := @row1 + 1 RankNo,
                 Age
          FROM   Table2, (SELECT @row1 := 0) r
        ) b ON a.RankNo = b.RankNo
      

        • uhmm他们之间的关系是什么?你如何将
          表1中的用户与
          表2中的年龄联系起来?或者你想按行号来做?关系就是他们的行号。@Joshuajeantree糟糕的设计,你应该通过给出主键来重新创建它。我知道这很糟糕。但是它是在一个数据集中提供给我的。嗯,它们之间的关系是什么?你如何将
          表1
          中的用户与
          表2中的年龄联系起来?或者你想按行号来做?关系就是他们的行号。@Joshuajeantree糟糕的设计,你应该通过给出主键来重新创建它。我知道这很糟糕。但是它是在一个数据集中提供给我的。我们如何确保行总是以相同的顺序返回?理论上,mysql可以返回任何顺序的行,除非指定顺序by@fthiellamysql可以返回任何顺序的行。不。这取决于您首先设置了索引的字段。如果不知道是否有索引,则无法确定行顺序。但是我也不确定索引是否能解决这个问题,当然MySql会使用索引来返回行和对行进行排序,但我不确定这是否得到保证或记录在案。请看这里:看起来,当没有给出显式索引时,InnoDB表的默认fifo顺序总是得到保证的。所以你的答案应该是正确的!我们如何确保行总是以相同的顺序返回?理论上,mysql可以返回任何顺序的行,除非指定顺序by@fthiellamysql可以返回任何顺序的行。不。这取决于您首先设置了索引的字段。如果不知道是否有索引,则无法确定行顺序。但是我也不确定索引是否能解决这个问题,当然MySql会使用索引来返回行和对行进行排序,但我不确定这是否得到保证或记录在案。请看这里:看起来,当没有给出显式索引时,InnoDB表的默认fifo顺序总是得到保证的。所以你的答案应该是正确的!
          
          SELECT a.Name, a.SurName, b.Age
          FROM
            (
              SELECT @row := @row + 1 RankNo,
                     Name, Surname
              FROM   Table1, (SELECT @row := 0) r
            ) a
            INNER JOIN
            (
              SELECT @row1 := @row1 + 1 RankNo,
                     Age
              FROM   Table2, (SELECT @row1 := 0) r
            ) b ON a.RankNo = b.RankNo