从MySql中的两个表插入日期

时间:2015-08-07 09:18:19

标签: mysql

考虑以下两个表

Table A:
id int auto_increment

with 2 rows of data.
id
1
2

Table B:
id auto_increment
aid reference to A.id

with 3 rows of data
id  aid 
1    1
2    2
3    2

如果现在表A已插入2行

Table A:
id
1
2
3
4

那么,如何编写insert语句以便它可以作为结果插入表B

Table B:
id  aid
1    1
2    2
3    2
4    3
5    4
6    4
7    5
8    6
9    6

问题仅限于研究。我知道有很多方法可以做到,但我只是想知道是否可以通过使用sql或只是在mysql中完成?

更新

对不起,这个问题不清楚了。让我说清楚。

  1. 表B中的数据与表A有关.Baid = A.id

  2. 表A中的新数据,即A.id,是顺序的,也与前两个id有关。这意味着1和3具有相同的含义,2和4也是。

  3. 在表B的插入中,它应该同时考虑1.和2.这意味着,由于一个辅助= 1和两个辅助= 2,那么需要插入表B的数据是一个辅助= 3,两个援助= 4,一个援助= 5,两个援助= 6。

  4. 问题:这可以通过编程轻松完成,但是,我只是想知道可以在插入语句中完成而不用Mysql编程吗?

1 个答案:

答案 0 :(得分:0)

假设您正在将ID插入表A,

INSERT INTO [Table B](aid) VALUES ([THE ID])

这将插入指定的ID,在表B的援助栏中。

否则,如果要匹配值,可以使用NOT IN来检测不相似的值,则必须插入这些值, 这将选择表B中不存在的所有ID:

SELECT id
FROM [Table A]
WHERE [Table A].id Not In (SELECT aid FROM [Table B])

...然后(取决于您使用它,PHP?然后fletch数据(应该看起来像这样))...

while($row = mysqli_fetch_assoc(...))
{
   INSERT INTO [Table B](aid) VALUES($row['aid'])
}