-
2021-01-19 10:53:12
我现在的情况是:
表1包装清单:
CREATE TABLE `PackingList` (
`PackingListId` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Sku` char(10) NOT NULL DEFAULT '',
`PartId1` int(8) unsigned NOT NULL,
`PartId2` int(8) unsigned DEFAULT NULL,
`PartId3` int(8) unsigned DEFAULT NULL,
`PartId4` int(8) unsigned DEFAULT NULL,
`PartId5` int(8) unsigned DEFAULT NULL,
`PartId6` int(8) unsigned DEFAULT NULL,
`PartId7` int(8) unsigned DEFAULT NULL,
`PartId8` int(8) unsigned DEFAULT NULL,
`PartId9` int(8) unsigned DEFAULT NULL,
`PartId10` int(8) unsigned DEFAULT NULL,
PRIMARY KEY (`PackingListId`),
KEY `PartId1 PLC_PartId[PartId]` (`PartId1`),
KEY `PartId2 PLC_PartId[PartId]` (`PartId2`),
KEY `PartId3 PLC_PartId[PartId]` (`PartId3`),
KEY `PartId4 PLC_PartId[PartId]` (`PartId4`),
KEY `PartId5 PLC_PartId[PartId]` (`PartId5`),
KEY `PartId6 PLC_PartId[PartId]` (`PartId6`),
KEY `PartId7 PLC_PartId[PartId]` (`PartId7`),
KEY `PartId8 PLC_PartId[PartId]` (`PartId8`),
KEY `PartId9 PLC_PartId[PartId]` (`PartId9`),
KEY `PartId10 PLC_PartId[PartId]` (`PartId10`),
);
表2(部分):
CREATE TABLE `PartId` (
`PartSkuId` int(8) unsigned zerofill NOT NULL AUTO_INCREMENT,
`Content` varchar(255) DEFAULT NULL,
`Height` decimal(7,2) unsigned NOT NULL,
`Width` decimal(7,2) unsigned NOT NULL,
`Depth` decimal(7,2) unsigned NOT NULL,
`Weight` decimal(7,3) unsigned NOT NULL,
`Supplier` varchar(100) NOT NULL DEFAULT '',
`Created` datetime DEFAULT NULL,
`CreatedBy` varchar(20) DEFAULT NULL,
`InUse` tinyint(1) DEFAULT '1',
`FF_Confirmed` datetime DEFAULT NULL,
PRIMARY KEY (`PartSkuId`),
KEY `Supplier` (`Supplier`)
) ENGINE=InnoDB AUTO_INCREMENT=6698 DEFAULT CHARSET=utf8;
考虑到我有两个表,其中PackingList表的每一行都包含多个引用PartId表中某一行的id,我希望得到类似PackingList的列表,其中每一行都是一个关系PackingList(可以重复)-->PartId:
PackingListId PartId
H0001 partId1
H0001 . partId2
等等。
到目前为止,我做了一些选择,以获得这些信息,但我没有得到那么远,请有人帮助我写一个查询与这样的结果?
更多相关内容 -
同一张表中的多个外键
2021-07-16 17:54:41I have a Laravel application with a MySQL database that has 3 tables: Publication, Comment and User.When I display a publication to user I call WS GET Publication By Id and WP GET Comment By Publicati...I have a Laravel application with a MySQL database that has 3 tables: Publication, Comment and User.
When I display a publication to user I call WS GET Publication By Id and WP GET Comment By Publication Id to display all comments related to that publication.
I want to know if there's a way to avoid Calling WP GET User By Comment Id for each Comment, because when I display a comment I also need to display some information for user who commented.
Can I add multiple user Foreign Keys in table Comment and use them?
Thanks in advance.
解决方案
This is a very generic usecase. Can you see if this answers your question.
Publication model{
whatever fields you have,
//Comments --> One to many relation with Comment model
public function comments()
{
return $this->hasMany('App\Comment');
}
}
Comment Model{
whatever fields you have,
//User --> One to one relation with User model
public function user()
{
return $this->hasOne('App\User');
}
}
User Model{
fields...
}
In your controller, you can get the publications with comments and users by using with function.
$pub = Publication::first()->with('comments.user');
I hope this helps.
-
mysq表中的一个字段可以设置多个外键约束吗
2022-04-26 03:30:32有个业务场景,比如主表通过记录type类型和对应的资源id关联两张表的主键id,外键表例如一个是文章表一个是视频表,主表通过type进行区分关联这两张表,可以分别为主表同一个字段资源id进行设置各一个外键,请问... -
数据库建表时一个表最多可以有几个主键,几个外键
2021-01-19 12:54:31展开全部主键只有一个,但是可以设置...数据库的每张表只能有一个主键,不可能有多个主键。所谓的一张表多个主键,我们称之为联合主键。联合主键就是用多个字段一起作为一张表的主键。主键的主键的作用是保证数据的...展开全部
主键只有一个,但是可以设置为多个字段为主键,也即联合主键。62616964757a686964616fe58685e5aeb931333366306538外键就是自己设置了也即可以有多个,可以设置除主键以外的其他字段全部是外键的。
数据库的每张表只能有一个主键,不可能有多个主键。所谓的一张表多个主键,我们称之为联合主键。联合主键就是用多个字段一起作为一张表的主键。主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。
扩展资料:
一、数据库模型:
1、对象模型
2、层次模型(轻量级数据访问协议)
3、网状模型(大型数据储存)
4、关系模型
5、面向对象模型
6、半结构化模型
7、平面模型(表格模型,一般在形式上是一个二维数组。如表格模型数据Excel)
二、数据库的架构:
数据库的架构可以大致区分为三个概括层次:内层、概念层和外层。
1、内层:最接近实际存储体,亦即有关数据的实际存储方式。
2、外层:最接近用户,即有关个别用户观看数据的方式。
3、概念层:介于两者之间的间接层。
三、数据库索引:
索引跟字段有着相应的关系,索引即是由字段而来,其中字段有所谓的关键字段(Key Field),该字段具有唯一性,即其值不可重复,且不可为“空值(null)"。例如:在合并数据时,索引便是扮演欲附加字段数据之指向性用途的角色。故此索引为不可重复性且不可为空。
-
mysql中怎么在一个表中创建多个外键?
2021-04-20 10:00:35打开我的navicatmysql...然后会出现一个设置外键的界面,一共有七列mysql设置外键。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选...打开我的navicatmysql设置外键,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table'
在弹出的对话框中找到“Foreign Keys”,然后单机mysql设置外键。
然后会出现一个设置外键的界面,一共有七列mysql设置外键。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null.
设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键mysql设置外键。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table’mysql设置外键。如下图:
在弹出的对话框中找到“Foreign Keys”,然后单机mysql设置外键。如下图:
然后会出现一个设置外键的界面,一共有七列mysql设置外键。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null。如图
设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键mysql设置外键。k如图:
-
mysql 外键约束及表关联
2021-01-18 20:22:31一、MYSQL中的约束1、主键:primary key 唯一非空的特性并且可以优化查询速度2、外键:foreign key 外键的作用保证2个或2个以上的数据表的数据一致性和完整性3、唯一:unique4、非空:not null5、默认值:deafult6、... -
聊聊Oracle外键约束的几个操作选项
2021-01-19 22:05:50外键约束的作用,是保证字表某个字段取值全都与另一个数据表主键字段相对应。也是说,只要外键约束存在并有效,不允许无参照取值出现在字表列中。具体在Oracle数据库中,外键约束还是存在一些操作选项的。本篇主要从... -
SQL语句:给表添加外键的四种方式
2020-12-14 17:56:451. 创建表的同时添加外键 create table score( score int(3), st_id int(16), cs_id int(16), primary key(st_id,cs_id), FOREIGN KEY (st_id) REFERENCES student(id), FOREIGN KEY (cs_id) REFERENCES classes(id)... -
MYSQL建立外键失败几种情况记录Can't create table不能创建表
2020-09-11 04:07:04当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。 -
MySQL 表中的同一个字段能否同时是两个表的外键
2021-01-18 21:16:26stackflow 上面找到一个不错的答案,翻译一下记录下来。Q:有三个表:regions,countries,states。countries和states都是regions的一部分。regions是食物链的最顶端。现在要加一个popular_area表,表中有两个字段:... -
MySQL创建数据表并建立主外键关系详解
2020-12-16 08:11:45为mysql数据表建立主外键需要注意以下几点: 需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列... -
sql | 一张表有【两个外键】
2019-07-17 14:10:00现在有三张表:如图, 要求1:现在要通过repair_id查询出worker两张表中的信息: 连接: select * from repair t1,client_info t2 where t1.client_id = t2.client_id and t1.client_id="1" 外连接:left ... -
MYSQL建立外键失败几种情况记录Can’t create table不能创建表
2021-01-21 14:53:51像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这... -
数据库的单个数据表中有几个主键?
2021-02-07 23:46:12数据库的单个数据表中只能有一个主键。数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性;主键主要是用与其他表的外键关联,以及本记录的修改与删除。数据库的单个... -
MySQL外键约束的实例讲解
2020-12-14 06:44:31对于两个通过外键关联的表,相关联字段中主键所在的表是主表,也称之为父表,外键所在的表是从表,也称之为子表,定义外键的时候需要遵守几个规则: 1、父表必须已经存在于数据库中,或者是当前正在创建的表。如果是... -
20-外键约束 (多个表)
2021-11-18 19:48:21CREATE TABLE emp ( -- 创建emp表 id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(30), age INT, dep_name VARCHAR(30), -- 部门名称 dep_location VARCHAR(30) -- 部门地址 ); -- 添加数据 INSERT INTO emp ... -
mysql一个表有三个外键,其中该表的两个字段的应对的外键的表都是同一张表,解决如何将其查询出来
2020-02-21 11:25:54需求是这样的,一个资源表有分类r_class_id(分类表id对应的外键) 创建者r_up_creator(用户表id对应的外键) 审核者r_ver_id (用户表id对应的外键),这时候该怎么将其都查询出来呢? 首先用左连接: select ... -
从oracle中的两个不同的表主键创建复合外键
2021-05-08 18:38:05表格1:tid(主键)//这里没有外键表2:sid(主键)//这里也没有外键表3:TidSidiid(primary key)foreign key(Tid,Sid) references table1(tid).table2(sid)In table3 i want to make a composite foreign key or ... -
PHP / mysql,使用外键从另一个表中获取数据
2021-04-20 13:18:39我有2个表,一个叫做帖子,一个叫做用户.在帖子里面我有几列,一列是userid的外键.在我的用户表中,我有几个列,包括用户标识和用户名.我想使用posts.userid来查找users.userid并显示users.username.目前我正在使用:... -
通过外键找到外键对应的表
2022-03-31 19:51:18mysql SELECT ii.`TABLE_NAME` -- ii.`TABLE_NAME`,ii.`COLUMN_NAME` FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS ii WHERE ii.`CONSTRAINT_SCHEMA` = 'lfssc' -- AND ii.`TABLE_NAME` = 'fssc_spm_accounts'... -
oracle 一个表的主键怎样同时为多个表的外键
2017-04-07 05:31:56create table a( id varchar(20) not null primary key, name varchar(30) ); create table b( id varchar(20) not null primary key ); ...id varchar(20) not null primary key ...alter table b add constraint a_id ... -
MySQL外键使用详解
2020-12-15 17:17:05最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL的外键。 (1)只有InnoDB类型的表才可以使用外键,mysql默认是MyISAM,这种类型不支持外键约束 (2)外键的好处... -
MySQL: 4、多表、外键、数据库设计
2021-01-18 22:45:36一、多表1、主键:用来唯一标识一条记录,不能有重复的,不允许为空,用来保证数据的完整性,并且主键只能有一个2、外键:表的外键是另一个表的主键,外键可以重复,可以为空,但是为空数据就跟与之相关联的表没关系... -
MySQL笔记——外键约束和表关系(一对一,多对一,多对多)
2022-02-18 21:53:23外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性。 语法: (1)添加约束 -- 创建表是添加外键约束 CREATE TABLE 表名( 列名 数据类型, … [CONSTRAINT] [外键... -
oracle中查询、禁用、启用、删除表外键
2021-05-07 08:24:491.查询所有表的外键的:select table_name, constraint_name from user_constraints where constraint_type = 'R';2.禁用所有外键约束, 使用下面的sql生成对应sql脚本:select 'alter table ' || table_name || ' ... -
mysql 删除表数据_主外键关联表的数据删除策略
2020-11-22 13:05:09他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个,各位有空帮砍下,https://w.url.cn/s/AzlPAB9,或者扫下码,言归正传,看到老杨写的这篇小文《ORA-02292_主表在有子表外键约束的情况,如何... -
第二百八十节,MySQL数据库-外键链表之一对多,多对多
2021-01-19 02:03:15多对多外键链表之一对多外键链表:就是a表通过外键连接b表的主键,建立链表关系,需要注意的是a表外键字段类型,必须与要关联的b表的主键字段类型一致,否则无法创建索引一对多:就是b表的某一个字段值对应a表外键里... -
myql如何查询有外键的表,实现多表联查?
2020-11-03 18:51:47这里有两张表,第二张表设置了外键 查询这个department部门中有几个员工 select t_departments.id,t_departments.name,t_departments.location, t_employees.id emp_id,t_employees.name emp_name,t_employees.... -
总结三种MySQL外键约束方式
2020-12-14 22:07:21这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组。 首先创建用户组表: create table t_group( id int not null, name varchar(30), primary key(id) ); ...