0

所有 id 都是 auto_increment。我将尝试解释我的问题可以理解。我只想将 2 个表复制到另外 2 个表。下面是我的表格:

table1

id  number

10   100
11   102
12   105
13   106

table2

id  number_id   subnumber

52     10           10
53     11           15
54     13           40

您可以看到一些数字的子编号。例如, WHERE id =11 fromtable1有一个子编号table2,它等于 15。现在我应该将其复制table1到表中:copy_table1

$sql1 = mysql_query('INSERT INTO
          copy_table1 (copy_number)
        SELECT
          number
        FROM
          table1');

而copy_table1的结果是:

copy_table1

id      copy_number
100      100
101      102
102      105  
103      106

然后我应该复制table2到另一个表copy_table2

$sql2 = mysql_query('INSERT INTO
          copy_table2 (copy_number_id, copy_subnumber)
        SELECT
          number_id, copy_subnumber
        FROM
          table2');

结果copy_table2是:

id  copy_number_id   copy_subnumber
60        10              10
61        11              15
62        13              40

所以,让我们检查一下表格:copy_table1copy_table2. 你看,ID fromcopy_table1不等于且适合 copy_number_id FROMcopy_table2 给我带来了问题。在复制表 id 和 copy_number_id 后我该怎么做?

4

1 回答 1

1
$sql2=mysql_query('INSERT INTO
   copy_table2 (copy_number_id, copy_subnumber)
SELECT DISTINCT
   cp1.id, t2.subnumber
FROM
   copy_table1 AS cp1
CROSS JOIN
   table1 AS t1
USING (number)
INNER JOIN
   table2 AS t2
ON
   t1.id = t2.number_id ');
于 2013-09-28T08:13:43.603 回答