连接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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在SQL查询中替换第一个FROM

来自分类Dev

我的第一个复杂的SQL查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

    在SQL查询中替换第一个FROM

  16. 16

    我的第一个复杂的SQL查询

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

热门标签

归档