首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >联接表中的INSERT语句

联接表中的INSERT语句
EN

Stack Overflow用户
提问于 2012-12-29 15:22:42
回答 3查看 110关注 0票数 2

我有三张桌子:

tblNames

代码语言:javascript
运行
复制
|  id  |   firstname   |   lastname   |
+------+---------------+--------------+
|  1   |   John        |   Smith      |

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

代码语言:javascript
运行
复制
|  id  |   jobs                |
+------+-----------------------+
|  1   |   Nurse               |
+------+-----------------------+
|  2   |   Call Center Agent   |
+------+-----------------------+
|  3   |   Police              |

tblNamesJobs (此表用于JOIN其他两个表):

代码语言:javascript
运行
复制
|  id  |   name_id   |   jobs_id   |
+------+-------------+-------------+
|  1   |   1         |   1         |
+------+-------------+-------------+
|  2   |   1         |   2         |
+------+-------------+-------------+
|  3   |   1         |   3         |

一切都很好,但是谁能给我展示一下第三个表的INSERT语句,我应该在添加新信息时使用它?

EN

回答 3

Stack Overflow用户

发布于 2012-12-29 15:29:15

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

代码语言:javascript
运行
复制
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
        );
票数 2
EN

Stack Overflow用户

发布于 2012-12-29 15:24:52

代码语言:javascript
运行
复制
INSERT INTO tblNamesJobs (name_id, jobs_id) VALUES (XXXX,YYYY)

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

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

编辑-Valex的答案更详细地说明了如果你还没有id值该怎么做。

如果可能的话,我建议使用某种框架来为您处理"joiner“表。

票数 0
EN

Stack Overflow用户

发布于 2012-12-29 15:30:42

如果您已经依赖于tauto,increment..you可以根据您的适配器获取lastinserid。例如:mysql_insert_id

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

因此,您将拥有先前插入的表的id,您可以将其保存在新的表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14079646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档