gpt4 book ai didi

sql - Sql-Server 中的父子关系问题

转载 作者:行者123 更新时间:2023-12-03 02:01:17 25 4
gpt4 key购买 nike

假设我在sql server中有两个具有父子关系的,如下所示,

父表:

Parentid  value 

1 demo
2 demo2

子表:

childid     parchildid   subvalue

1 1 demo1
2 1 demo2

此处子表中的parchildid是引用父表parentid外键/.

我需要检索特定parentid 的子表数据。所以,我使用了下面的查询

 select *from child
where parchildid in (select parchildid from parent)

它给出了以下输出。 (子表的所有行)

 childid    parchildid   subvalue

1 1 demo1
2 1 demo2

但如您所见,我在子查询中给出了一个 invalid 列 (parchildid)(parchildid 属于 子表而不是父表)。

我想知道为什么 sql server 没有抛出任何错误。

正在运行从父级中选择 parchildid单独查询会出现无效列错误。

谁能解释一下为什么子查询中没有抛出错误?那里的逻辑是如何运作的?

谢谢

最佳答案

来自MSDN :

If a column does not exist in the table referenced in the FROM clause of a subquery, it is implicitly qualified by the table referenced in the FROM clause of the outer query.

在您的情况下,由于 parchildid 是外部查询中表中的一列,因此没有错误。然而,查询本身无法找到这样的列,因此失败。

关于sql - Sql-Server 中的父子关系问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com