连接SQL查询返回第一个表

里尔

我有一些link tables链接到第一个表的MS Access 2010 ,如下所示:

    Item                LinkTable

[ ID       ]           [ ID        ]
[ ItemName ]-1-------*-[ FromItem  ]
[          ]-1-------*-[ ToItem    ]

图1:FromItemToItem引用“ Item.ID”

我想查询将所有三个表链接在一起并显示例如以下字段的查询

(来自)Item.ItemName | LinkTable.ID | (至)Item.ItemName

我尝试了以下SQL,但是它抱怨Item的第二次出现,并在下面的表达式“ Item LEFT JOIN LinkTable”中显示一条消息“无法在FROM子句中重复表名称” Item”:

SELECT *
FROM Item LEFT JOIN 
(
Item LEFT JOIN LinkTable ON (LinkTable.ToItem =Item.ID)
)
ON (LinkTable.FromItem = Item.ID);

Q1:为什么我不能这样链接回“启动表”而不引起错误消息?

Q2:我应该如何定义选择字段,以便同时显示from-ItemName和to-ItemName?(在示例中,我写了“ Select *”来简化)

//罗尔夫

编辑:______________________________________________________

根据@Andomar(如下)的答复,我得到了以下工作代码。我使用INNER JOIN而不是LEFT JOIN为了仅获得匹配Items

   SELECT fro.ItemName
   ,      lt.ID
   ,      to.ItemName
   FROM Item fro 
   INNER JOIN (LinkTable lt 
   INNER JOIN Item to ON lt.toItem = to.ID)
   ON fro.ID = lt.fromItem;
安多玛

您可以为表名加上别名。例如,这将表别名Item为别名i1

FROM   Item i1

现在,您可以再次使用相同的表,并使用其他别名进行标识。将此与括号括起来,Access需要多个联接,您将获得:

SELECT  i1.ItemName
,       i2.ItemName
FROM (Item i1
LEFT JOIN LinkTable lt ON lt.FromItem = i1.ID)
LEFT JOIN item i2 ON i2.ID = lt.ToItem

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将第一个日期和返回的日期总数组合成一个SQL查询

来自分类Dev

将第一个日期和返回的日期总数组合成一个SQL查询

来自分类Dev

Codeigniter-join()仅返回一个“第一个表”

来自分类Dev

SQL返回一个Distinct列和distinct列的第一个日期

来自分类Dev

SQL查询检查第一个表中的列或查找第二个表中的行

来自分类Dev

Linq查询联接两个表并从第一个表返回对象-使用的PagedList

来自分类Dev

查询以返回SQL中列的第一个结果?

来自分类Dev

从另一个表返回的值与第一个表的值匹配

来自分类Dev

链接列表:查询存储在SQL表中的链表的第一个和最后一个元素

来自分类Dev

连接表,但确保返回第一个表中的所有行

来自分类Dev

基于Oracle SQL中第一个查询的结果的第二个查询中的UNION表

来自分类Dev

如何联接表以从SQL查询中的第一个表中提取所有记录

来自分类Dev

在SQL查询中替换第一个FROM

来自分类Dev

连接多个表并根据第一个表ID获取状态

来自分类Dev

我的第一个复杂的SQL查询

来自分类Dev

连接多个表并汇总第一个表中每一行的结果

来自分类Dev

LEFT JOIN查询未返回第一个表中的所有行

来自分类Dev

从SQL查询中排除第一个和最后一个结果

来自分类Dev

对Excel工作表的SQL查询-无法通过第一个查询

来自分类Dev

SQL 2插入基于第一个的返回

来自分类Dev

Linq查询联接两个表并从第一个表返回对象-使用的PagedList

来自分类Dev

java.sql.SQLException:第一个数据库查询后,连接已经关闭

来自分类Dev

连接两个表,列出第一个表的所有结果

来自分类Dev

SQL 两个左连接只产生第一个表中的数据

来自分类Dev

SQL 连接,其中第二个表中的值是第一个表中的第一个较低值

来自分类Dev

为什么我的查询总是返回表中第一个图像的路径?

来自分类Dev

2个表的SQL查询如何填充第一个到第二个表的字段

来自分类Dev

mysql查询加入,比较两个表并返回第一个表中的所有记录

来自分类Dev

Teradata - 两个表之间的连接 - 保留第一个表中的值

Related 相关文章

  1. 1

    将第一个日期和返回的日期总数组合成一个SQL查询

  2. 2

    将第一个日期和返回的日期总数组合成一个SQL查询

  3. 3

    Codeigniter-join()仅返回一个“第一个表”

  4. 4

    SQL返回一个Distinct列和distinct列的第一个日期

  5. 5

    SQL查询检查第一个表中的列或查找第二个表中的行

  6. 6

    Linq查询联接两个表并从第一个表返回对象-使用的PagedList

  7. 7

    查询以返回SQL中列的第一个结果?

  8. 8

    从另一个表返回的值与第一个表的值匹配

  9. 9

    链接列表:查询存储在SQL表中的链表的第一个和最后一个元素

  10. 10

    连接表,但确保返回第一个表中的所有行

  11. 11

    基于Oracle SQL中第一个查询的结果的第二个查询中的UNION表

  12. 12

    如何联接表以从SQL查询中的第一个表中提取所有记录

  13. 13

    在SQL查询中替换第一个FROM

  14. 14

    连接多个表并根据第一个表ID获取状态

  15. 15

    我的第一个复杂的SQL查询

  16. 16

    连接多个表并汇总第一个表中每一行的结果

  17. 17

    LEFT JOIN查询未返回第一个表中的所有行

  18. 18

    从SQL查询中排除第一个和最后一个结果

  19. 19

    对Excel工作表的SQL查询-无法通过第一个查询

  20. 20

    SQL 2插入基于第一个的返回

  21. 21

    Linq查询联接两个表并从第一个表返回对象-使用的PagedList

  22. 22

    java.sql.SQLException:第一个数据库查询后,连接已经关闭

  23. 23

    连接两个表,列出第一个表的所有结果

  24. 24

    SQL 两个左连接只产生第一个表中的数据

  25. 25

    SQL 连接,其中第二个表中的值是第一个表中的第一个较低值

  26. 26

    为什么我的查询总是返回表中第一个图像的路径?

  27. 27

    2个表的SQL查询如何填充第一个到第二个表的字段

  28. 28

    mysql查询加入,比较两个表并返回第一个表中的所有记录

  29. 29

    Teradata - 两个表之间的连接 - 保留第一个表中的值

热门标签

归档