我有三张桌子:
tblNames
| id | firstname | lastname |
+------+---------------+--------------+
| 1 | John | Smith |tblJosbs (此表同时接受多个复选框值):
| id | jobs |
+------+-----------------------+
| 1 | Nurse |
+------+-----------------------+
| 2 | Call Center Agent |
+------+-----------------------+
| 3 | Police |tblNamesJobs (此表用于JOIN其他两个表):
| id | name_id | jobs_id |
+------+-------------+-------------+
| 1 | 1 | 1 |
+------+-------------+-------------+
| 2 | 1 | 2 |
+------+-------------+-------------+
| 3 | 1 | 3 |一切都很好,但是谁能给我展示一下第三个表的INSERT语句,我应该在添加新信息时使用它?
发布于 2012-12-29 15:29:15
例如,添加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
);发布于 2012-12-29 15:24:52
INSERT INTO tblNamesJobs (name_id, jobs_id) VALUES (XXXX,YYYY)这是假设表的id是自动递增的。
应该注意,"joiner“表中的name_id和jobs_id列都应该是另一个表中相应列的外键。
编辑-Valex的答案更详细地说明了如果你还没有id值该怎么做。
如果可能的话,我建议使用某种框架来为您处理"joiner“表。
发布于 2012-12-29 15:30:42
如果您已经依赖于tauto,increment..you可以根据您的适配器获取lastinserid。例如:mysql_insert_id
对于PDO,我们可以使用--PDO::lastInsertId.
因此,您将拥有先前插入的表的id,您可以将其保存在新的表中。
https://stackoverflow.com/questions/14079646
复制相似问题