sql查询如何将A表数据name字段对应B表name字段得到对应的B表id主键然后添加A到表usel_id中
1.写这个的原因
最近在写公司项目的时候一个功能很是让我头疼如标题看到的一样,平时我们一般都只负责数据表的查询或者连表查询某一个字段和A表字段一起显示出来。
但是添加到A表还是头一次,第一天想了很久都没有想出来很是头疼,于是只好把希望放在第二天谁知道一早上的就
灵光乍现,思路泉涌不息,在我的努力下终于写出来了☺
2.1.1 car_info表2.首先上数据库表

2.1.2 users表

好了废话不多说上代码。。。。
3.信息添加功能
public function create(Request $request){
$input=$request->except('_token');
$res=\DB::table('users')->select('id')->where(['real_name'=>$input['name']])->get();
if ($res!=null){
foreach ($res as $value){
$data=\DB::table('car_info')->insert(['name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>$value->id]);
if($data){
return redirect('admin/car_info');
}else{
return back();
}
}
}
$name=\DB::table('car_info')->insert(['name'=>$input['name'],'principal'=>$input['principal']]);
if($name){
return redirect('admin/car_info');
}else{
return back();
}
}
上诉功能实现的是添加的时候如果A(car_info)表的name对应B表的real_name相等得到B(users)表的主键,并且将得到的主键添加到A表的user_id中,实际操作的时候就是你添加A表name字段
如果sql语句查询到B表real_name字段名称对应那么对应的B表的id,将添加到A表对应的user_id里面,如果没有和B表的real_name对应那么则正常添加信息
4. 信息修改功能
有添加当然有修改啦好了废话不多说上干货代码伺候
//修改
public function update(Request $request){
$input=$request->except('_token');//得到除却token之外的全部信息
$res=\DB::table('users')->select('id')->where(['real_name'=>$input['name']])->get(); if($res!=null){
foreach ($res as $value){
$data=\DB::table('car_info')
->where(['id'=>$input['id']])->update(['id'=>$input['id'],'name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>$value->id]); if($data){
return redirect('admin/car_info');
}else{
return back();
}
}
}
$name=\DB::table('car_info')->where(['id'=>$input['id']])->update(['id'=>$input['id'],'name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>null]);
if($name){
return redirect('admin/car_info');
}else{
return back();
}
}
上诉功能实现的是修改的时候如果A(car_info)表的name对应B表的real_name相等得到B(users)表的主键,并且将得到的主键添加到A表的user_id中,实际操作的时候就是你修改A表name字段
如果sql语句查询到B表real_name字段名称对应那么对应的B表的id,将添加到A表对应的user_id里面,如果没有和B表的real_name对应那么则将id为空!
sql查询如何将A表数据name字段对应B表name字段得到对应的B表id主键然后添加A到表usel_id中的更多相关文章
- SQL SERVER 从其它数据库中复制带自增ID主键的表数据
SQL SERVER两个结构相同(或不同)的表,互相导入数据,方法有两种: 1.使用SQL SERVER 自带的导出.导入功能,在库名上右击,“任务”,导出数据.导入数据,这个操作具体不就不多讲了. ...
- Sql Server中的游标最好只用于有主键或唯一键的表
游标cursor,我想大多数人都在sql server里面用过.当一个表数据量不太大的时候,游标还是可以用的,毕竟游标是循环一个表中每一行数据的最简便办法.但是如果你用一个游标去循环一个没有主键或唯一 ...
- Hibernate学习笔记(三)Hibernate生成表单ID主键生成策略
一. Xml方式 <id>标签必须配置在<class>标签内第一个位置.由一个字段构成主键,如果是复杂主键<composite-id>标签 被映射的类必须定义对应数 ...
- 分布式中的分库分表之后,ID 主键如何处理?
面试题 分库分表之后,id 主键如何处理?(唯一性,排序等) 面试官心理分析 其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定 ...
- 面试官:分库分表之后,id 主键如何处理?
面试题 分库分表之后,id 主键如何处理? 面试官心理分析 其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全 ...
- sql 查询某个条件多条数据中最新的一条数据或最老的一条数据
sql 查询某个条件下多条数据中最新的一条数据或最老的一条数据 test_user表结构如下: 需求:查询李四.王五.李二创建的最初时间或者最新时间 1:查询最初的创建时间: SELECT * FRO ...
- SQL修改表结构之添加主键,添加IDENTITY属性
设计一张表时没有考虑到主键Id及自增长,现又需要,原脚本: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[F ...
- Oracle自增主键的添加[sequence]--表数据已存在
--增加主键ID ); --设置sequence使ID自增 create sequence SEQ_ID minvalue maxvalue start ; --将id的值设置为sequence Up ...
- 分库分表之后,id 主键如何处理?
其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全局唯一的 id 来支持.所以这都是你实际生产环境中必须考虑的 ...
随机推荐
- throw throws区别
1.throws是在方法上对一个方法进行声明,而不进行处理,向上传,谁调用谁处理: 格式: 权限修饰符 返回值类型 方法名(参数列表) throws Exception1,Exception2...{ ...
- 在 Vs2013中查看类的内部布局
第一步:在Visual Studio中配置命令行环境(Command Prompt) 来自:https://blog.csdn.net/u013553529/article/details/77417 ...
- ansible实现SSH配置免密互信
Ansible是用来处理大批量重复性操作的工具,只需要在一台机器上就可以远程控制所有机器,但前提是必须保证每台机器之间SSH可以相互免密登录.关于Ansible的安装和环境准备请参考Ansible环境 ...
- VFP的13个SPT函数
Visual FoxPro 中内置了13个以SQL开头的函数,我们把它们称为SPT函数.就是这13个函数完成了Visual FoxPro的所有的SQL Pass Though功能.从功能上看,我们可以 ...
- android wifi断开原因分析
最近在解bug的过程中经常遇到密码正确但处于saved的状态,总结原因有已下几种: 1 在ASSOCIATING阶段由于丢包导致ASSOC REJECT 03-16 09:22:12.440 D/Wi ...
- Leetcode面试题17.20_连续中值
题目地址 实现一个数列的动态添加和查询中位数. 复杂点的话应该可以写个平衡树什么的,然后查询第k大,还可以删除数字. 简单点的话显然可以维护两个堆,一个大顶堆一个小顶堆,而且大顶堆最多比小顶堆多一个, ...
- vue路由--命名路由
有时我们通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的时候.你可以在创建 Router 实例的时候,在 routes 配置中给某个路由设置名称. 我们直接在路由下 ...
- href的几个特殊值
a href ="" :默认打开的还是当前页面,会刷新一下重新打开. a href ="#": 浏览器地址栏网址后面会多显示1个#.不会刷新页面,会回到页面顶部 ...
- android应用开发错误:Your project contains error(s),please fix them before running your
重新打开ECLIPSE运行android项目,或者一段时间为运行ECLIPSE,打开后,发现新建项目都有红叉,以前的项目重新编译也有这问题,上网搜索按下面操作解决了问题 工程上有红叉,不知道少了什么, ...
- 【转】netty-transport版本冲突
Springboot整合Elasticsearch报错 今天使用SpringBoot整合Elasticsearch时候,相关的配置完成后,启动项目就报错了. nested exception is j ...