在vb.net中的Ms.Access查询从tbl1中选择全部,从tbl2中只选择1列

时间:2016-03-17 07:14:22

标签: sql vb.net ms-access

我有两张桌子:

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

我尝试显示来自tbl1 (ID, Name, Sex, OrderDate)的{​​{1}}和 一列中的所有数据。

我试过这个

tbl2(OrderCode)

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

Like this

我已经搜索了一段时间,但只看到他们使用SELECT tbl1.*, tbl2.OrderCode FROM tbl1, tbl2; 的mySQL查询,但它出现了语法错误子句。

我希望它看起来像 ID Name Sex OrderDate OrderCode OrderCode是autoNumber Random,这就是为什么我把它放在其他表中,因为Access不允许在同一个表中使用2个autoNumber

4 个答案:

答案 0 :(得分:0)

您正在进行CROSS JOIN,从而产生笛卡尔积

您应该在2个表中常见的字段上加入以限制返回的行。

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

试试这个

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

答案 1 :(得分:0)

创建两个表,如下所示:

enter image description here

然后使用此查询

cancel

答案 2 :(得分:0)

请注意您的表tbl1(ID,Name,Sex,OrderDate) tbl2(OrderDate,OrderCode)没有关系,你必须先将这两个表关联起来才能选择列。 试试这个: 新表: tbl1(ID,Name,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

答案 3 :(得分:0)

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

当你有多余的结果时,你也可以使用distinct。

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