连接表中的INSERT语句

时间:2012-12-29 07:22:42

标签: php html insert phpmyadmin

我有3张桌子:

tblNames

|  id  |   firstname   |   lastname   |
+------+---------------+--------------+
|  1   |   John        |   Smith      |

tblJosbs(此表同时接受多个复选框值):

|  id  |   jobs                |
+------+-----------------------+
|  1   |   Nurse               |
+------+-----------------------+
|  2   |   Call Center Agent   |
+------+-----------------------+
|  3   |   Police              |

tblNamesJobs(此表用于JOIN其他2个表格:

|  id  |   name_id   |   jobs_id   |
+------+-------------+-------------+
|  1   |   1         |   1         |
+------+-------------+-------------+
|  2   |   1         |   2         |
+------+-------------+-------------+
|  3   |   1         |   3         |

一切都很好但有人可以在我添加新信息时向我显示我应该使用的第3个表的INSERT语句吗?

3 个答案:

答案 0 :(得分:2)

例如,添加记录 John Smith 呼叫中心座席

insert into tblNamesJobs (name_id,jobs_id )
values (
         select id from tblNames where 
                firstname='John' 
                and lastname='Smith' limit 1
         ,
         select id from tblJosbs where jobs='Call Center Agent' limit 1
        );

答案 1 :(得分:0)

INSERT INTO tblNamesJobs (name_id, jobs_id) VALUES (XXXX,YYYY)

假设表的id是自动递增的。

应该注意,“joiner”表中的name_id和jobs_id列都应该是另一个表中各列的外键。

编辑 - 如果您还没有id值,Valex的答案会详细说明该怎么做。

如果可能,我建议使用某种框架来处理“joiner”表。

答案 2 :(得分:0)

如果你已经依赖tauto增量..你可以获得lastinserid,具体取决于你的适配器。 例如。的 mysql_insert_id

对于PDO我们可以使用 - PDO :: lastInsertId。

所以你将拥有早期插入表的id,你可以保存在新表中。