数据查询问题(最近有点晕)

smmlfl 2009-01-17 01:54:36

例如:一种车型“奥迪Q7”在好多家公司都同时出售
其中一家公司:北京新小公司,不仅出售奥迪Q7,还出售奥迪q3等等
我现在要建两张表,请问应该怎样建才能实现如下功能?
1.要查询出所有销售奥迪Q7的公司(查询的是公司)
2.要查询出xx公司销售的所有车型(查询的是车型,而且是某一个特定公司的)
这是我设计的表
车型表
:carid(编号)
carname(车型)
销售公司表
managerid(编号)
company(公司名)
carid(和车型表的carid外联)
请问我应该怎样查询啊?谢谢大家帮我看看
...全文
160 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
kushuang333 2009-01-18
  • 打赏
  • 举报
回复
select * from 车型表 a left join 销售公司表 b on a.carid=b.carid where a.carname='奥迪Q7'
select * from 车型表 a left join 销售公司表 b on a.carid=b.carid where b.company='公司名'
wangping_li 2009-01-18
  • 打赏
  • 举报
回复
用left join查询
select distinct..去掉重复记录

其实你这样设计上有点问题

应该销售公司和车型表之间有一个表关联的
如:
id
销售公司的ID
车型的ID
到时直接根据这个关联表查就行了
erytbc 2009-01-18
  • 打赏
  • 举报
回复
hao de
gxynctz 2009-01-17
  • 打赏
  • 举报
回复
怎么会只建两张表。应该新建关联表。如niuniuhuang所说。

是有点问题,改成这样把
车型表 :
carid(编号)
carname(车型)
销售公司表:
managerid(编号)
company(公司名)
公司销售车型表:
managerid(销售公司编号)
carid(车型编号)
xwk789789xwk 2009-01-17
  • 打赏
  • 举报
回复
up
niuniuhuang 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 smmlfl 的回复:]
那我这样建的表没有问题吗?怎么老感觉不对劲啊
[/Quote]
是有点问题,改成这样把
车型表 :
carid(编号)
carname(车型)
销售公司表:
managerid(编号)
company(公司名)
公司销售车型表:
managerid(销售公司编号)
carid(车型编号)
criedshy 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 smmlfl 的回复:]
是这样啊,可是这样的话我往销售公司表里填的东西就是重复的了,能不能不让重复啊?
[/Quote]

销售公司表只要不涉及到销量问题就不会重复

查询你用inner join
criedshy 2009-01-17
  • 打赏
  • 举报
回复
你这相当于一个进销存的信息
你还要考虑库存信息,买入多少,销售了多少,所以还需要一张库存表
criedshy 2009-01-17
  • 打赏
  • 举报
回复
你这相当于一个进销存的信息
你还要考虑库存信息,买入多少,销售了多少,所以还需要一张库存表
koukoujiayi 2009-01-17
  • 打赏
  • 举报
回复
select distinct .......
totsheng 2009-01-17
  • 打赏
  • 举报
回复
这多对多,肯定会有你所说的重复问题。
你还可以建立个销售车辆对应表
id
carid(车编号)
managerid(销售编号)
HDNGO 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huwei2003 的回复:]
select * from 车型表 a inner join 销售公司表 b on a.carid=b.carid where a.carname='奥迪Q7'
select * from 车型表 a inner join 销售公司表 b on a.carid=b.carid where b.company='公司名'
[/Quote]

U~p~
smmlfl 2009-01-17
  • 打赏
  • 举报
回复
是这样啊,可是这样的话我往销售公司表里填的东西就是重复的了,能不能不让重复啊?
koukoujiayi 2009-01-17
  • 打赏
  • 举报
回复
select a.company,b.carname from 销售公司表 as a inner join 车型表 as b
on a.carid=b.carid
where a.company like '公司名%'
(或者 where b.carname='奥迪Q7' )
smmlfl 2009-01-17
  • 打赏
  • 举报
回复
那我这样建的表没有问题吗?怎么老感觉不对劲啊
huxuanhui 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huwei2003 的回复:]
select * from 车型表 a inner join 销售公司表 b on a.carid=b.carid where a.carname='奥迪Q7'
select * from 车型表 a inner join 销售公司表 b on a.carid=b.carid where b.company='公司名'
[/Quote]

就这样
xuqunying0545 2009-01-17
  • 打赏
  • 举报
回复
用左连接
Jack2013tong 2009-01-17
  • 打赏
  • 举报
回复
select * from 车型表 a inner join 销售公司表 b on a.carid=b.carid where a.carname='奥迪Q7'
select * from 车型表 a inner join 销售公司表 b on a.carid=b.carid where b.company='公司名'
smmlfl 2009-01-17
  • 打赏
  • 举报
回复
在线等,请大家帮帮我啊

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧