gpt4 book ai didi

sql查询问题一步一步

转载 作者:行者123 更新时间:2023-11-29 13:12:20 26 4
gpt4 key购买 nike

有3种关系:

  • person(id, first_name, original_surname, new_surname, birth_date)
  • 婚姻(m_id,w_id,日期)
  • child_of(child_id, father_id, mother_id)

同父异母 sibling 的查询是:

(
select P1.id, P2.id
from (
person join child_of on id=child_id
) as P1
natural join (person join child_of on id=child_id) as P2
using (father_id)
where P1.mother_id < P2.mother_id
)
union
(
select P1.id, P2.id
from (
person join child_of on id=child_id
) as P1
natural join (person join child_of on id=child_id) as P2
using (mother_id)
where P1.father_id < P2.father_id
)

我是 sql 的新手,我想了解“幕后”发生了什么。最终创建了哪个表以及查询如何找到同父异母的兄弟。

是否创建了 P1,然后它与 P2 连接,然后它们都连接在一起,where 对表有何影响?

这里的事情按时间顺序是怎样的,先发生什么,其次发生什么……

最佳答案

此处的处理不会超出解析器步骤,该步骤将检测查询中的语法错误。自然连接(最好避免)不使用 USING 子句。

但假设您指的是 INNER 而不是 NATURAL,答案在很大程度上取决于表中数据的数量和分布,以及数据库。

此外,表上的索引也会影响答案。

有许多不同的方法可以执行这样的查询,数据库引擎会自动选择它认为在给定情况下最快的方法。

您可以使用 EXPLAIN 命令查看 PostgreSQL 选择的执行计划。

关于sql查询问题一步一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53325292/

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