繁体   English   中英

vb.net中的Ms.Access查询从tbl1中选择全部,从tbl2中仅选择一列

[英]Ms.Access query in vb.net select all from tbl1 and only 1 column from tbl2

我有2张桌子:

  • tbl1(ID, Name, Sex, OrderDate)
  • tbl2(OrderDate, OrderCode)

我尝试显示来自tbl1 (ID, Name, Sex, OrderDate)所有数据tbl1 (ID, Name, Sex, OrderDate)以及来自tbl2(OrderCode) 一列。

我已经试过了

SELECT tbl1.*, tbl2.OrderCode FROM tbl1, tbl2;

但它显示重复的数据。 像这样

像这样

我查了一段时间,但只看到MySQL的,他们使用的查询join ,但它似乎语法错误条款。

我希望它看起来像这样ID名称性别OrderDate OrderCode OrderCode是autoNumber随机的,这就是为什么我将其放在其他表中的原因,因为Access不允许在同一表中使用2个autoNumber

您正在执行CROSS JOIN,这会产生笛卡尔积

您应该在2个表中通用的字段上进行JOIN操作,以限制返回的行。

在您的情况下,我在两个表上看到的唯一字段是OrderDate,这有点奇怪。

尝试这个

SELECT tbl1.*, tbl2.OrderCode FROM tbl1, tbl2 WHERE tbl1.OrderDate=tbl2.OrderDate

创建两个表,如下所示:

在此处输入图片说明

然后使用此查询

select t1.ID, t1.Name, t1.Sex, t2.OrderDate, t2.OrderCode from 
Table1 t1
inner join Table2 t2 on t1.ID = t2.ID;

请注意,您的表tbl1(ID,名称,性别,OrderDate)tbl2(OrderDate,OrderCode)没有关系,您必须先关联这两个表,然后才能选择列。.尝试以下操作:新建表:tbl1(ID,名称, Sex,OrderDate)tbl2(ID,OrderDate,OrderCode)tbl1.Id是主键,Tbl2.ID是外键,并且我将选择Tbl1中的所有列和tbl2中的一列(无论大小写限制)

Select tbl1.Id,tbl1.name,tbl1.sex,tbl1.Orderdate,tbl2.orderdate from tbl1,tbl2 where tbl1.id=tbl2.id

如果要获得与两个表有关系的结果,则意味着要使用Join。

如果您有多余的结果,也可以使用distinct。

SELECT DISTINCT tbl1.*, tbl2.OrderCode FROM tbl1, tbl2;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM