ACCESS 多对多关系 表的查询

有三张表:破损情况表【没有主键】、商品ID表【商品id 和名称,ID为主键】、下单表【没有主键】,然后通过关系分别建立了 商品ID表和下单表的一对多关系,商品ID表和破损情况表的一对多关系,然后我现在想查询:破损表的商品在下单表的流水号(下单表才有流水号,即,通过破损的ID,找下单表里的流水号),多对多关系表的查询,不会啊求教~~

题主没有提供破损表的结构,这里假设商品表也是通过商品ID进行关联的,另外输出需求也不太明确。下列语句仅供参考,输出破损表所列的相关记录同时列出对应商品在下单表列流水号:

select a.商品ID,a.名称,b.破损数量,c.流水号 from
商品ID a,破损情况表 b,下单表 c where a.商品id=b.商品id
and a.商品id=c.商品id;

上面语句只是一个粗略的写法,如果不符合题主的要求,请提供那三张表的详细数据结构,并描述清楚自己的输出要求,我再重新编写相应语句。追问

如下图所示,下单表和破损表都没有主键,则主要要用到的[流水号] [商品Code] [用户名]都是有重复的,现在是想根据[破损表]的 [商品Code] 和[用户名] ,找出[下单表]对应的[订单流水号],不会,求教~ 

追答

先说些题外话,既然[商品代码表]分别与[下单表]和[破损情况]表基于共有字段[商品code]分别建立了一对多参照完整性关系,那么[下单表]和[破损情况]表就没有必要存在[商品名称]这个字段了,这样既可减少数据冗余又大大减少了维护数据的工作量,需要展示商品名称时,我们只要在SQL语句里连接[商品代码表]就可以轻松获得。

运行下列SQL语句系统会要求输入[商品code]和[用户名],输入这两个参数后,就可以得到相应的[订单流水号]:

select a.订单流水号,b.商品code,b.用户名
from 下单表 a,破损情况 b where
a.商品code=b.商品code and
b.商品code=[请输入商品code] and
b.用户名=[应输入用户名];

如有不明白处请追问。

温馨提示:内容为网友见解,仅供参考
无其他回答

access多表查询怎么弄?3个或3个表以上
视图也就是将多个表根据需要选择不同的列并把这些所选列合成一个虚表,然后你直接调用这个虚表就可以完成对多表的查询了.access有表,视图...等等,你找到视图->新建->选择所需的表->选择这些表的列(想选几个就选几个),然后确定退出就可以了,你会发现视图实际上就是把几个表的所选列合成为一个表...

Access多对多关系Access如何创建多对多关系
创建的关系是Access将被视为一对多的关系。也将执行参照诚信。 现在打开级联更新并点击创建按钮,如下图所示。结果 - 现在单击并拖动ProjectID,放在tblAuthorJunction的ProjectID字段上。我们将强化参照完整性和级联更新相关字段。如下图所示 - 以下是多对多的关系。

如何在access 中用三个表来表现一对多,多对多的关系?
表间关系:学生与成绩 一对多,课程与成绩一对多,而在E-R图中看到的是学生与课程的多对多,这说明E-R图中的多对多到了表间关系会拆分成两个一对多

access中的多表查询
1、新建一个查询,引入多个表(建设表1,表2,表3)2、使用format函数让日期字段只精确到日,建设表1有个字段叫日期1,表2叫日期2……在查询的空白字段写上:表1日期:format([表1].[日期1],"yyyymmdd")该字段的条件写上:=format([表2].[日期2],"yyyymmdd") and =format([表3].[日期3...

ACCESS数据库多表查询及导出
1,在Access数据库环境中,是不可以执行多语句,用union?结果,出现了另一种错误,动作查询不能作为行的来源。2、需要更改注册表及让服务器注销或重启,而要能达到这样的要求,还用这么费劲生成asp文件吗,因为权力早就在webshell之上了。 唉,难怪lake2在标题的webshell后加了个?,鸡肋啊,就是鸡肋。 但这样的条件在...

在站内查询中,如何实现ASP同时在多个数据库\/数据表中查询呀?
1、新那一个MS Access数据库,打开(保证里面有多个表),打开后将看到“对象”里的“表”。2、点击“对象”里的“查询”,再点击“新建”,选择“设计视图”--“确定”。3、在“显示表”窗口中选择你要查询的“表”--“添加”,可以添加多个。4、在视图里建立查询关系。5、你要的是查询语句吧...

ACCESS 对两表不同的查找(多索引)
旧表(B ID,B)1)查询新表较之于旧表有变更的情况 要求选出“新表”中[A ID]字段与”旧表“中[B ID]字段存在交集的记录,并增加一个[备注]字段,此字段值只有两种状态——“更改”和“未更改”,判断的标准是同ID的情况下如果”新表“的字段[A]与”旧表“的字段[B]相同则返回”未更改...

Access的Left join多表联合查询
对需要使用多个join连接三张或更多表时,参照上述链接中的做法就可以了。示例中使用的是inner join,至于左连接和右连接,请用left join和right join替代之。

在access中什么查询可以根据一个或多个表\/查询中的数据来
在access中选择查询可以根据一个或多个表\/查询中的数据来进行查询。根据调查相关公开信息显示,选择查询能够根据指定的查询准则,从一个或多个表中获取数据并显示结果,可以使用选择查询对记录进行分组,并且对记录进行总结。

access数据库怎么建立表关系呢?
关系分为三种类型:一对一、一对多和多对多。一对一关系中,每个表中的行在另一个表中对应一个或多个行。一对多关系允许一个表中的行关联多个表中的行,反之亦然。多对多关系需要连接表来实现,通过包含两个表中主键的组合字段。在 Access 中定义关系时,相关字段无需同名,但必须具有相同的数据...

相似回答