gpt4 book ai didi

带条件的SQL

转载 作者:行者123 更新时间:2023-12-02 07:43:39 25 4
gpt4 key购买 nike

如果我有这样一条sql语句:

Select * from Order, OrderDetail 
where Order.ID = OrderDetail.OrderID and OrderDetail.Amount > 5

Order union with OrderDetail 找到满足Amount>5 的行时,是否意味着在所有行中循环??

请帮帮我。

我的问题是:如果在连接 2 个表之后,在创建的所有行中执行数据库循环以查找满足条件的行。

最佳答案

该查询通过 Order.ID = OrderDetail.OrderID 连接两个表。它是否在 I/O 由数据库决定期间或之后过滤结果行。如果您在 Amount 上有一个索引,可以想象它会查找匹配的行,然后 加入。最好查看查询的 EXPLAIN

但是您的查询最好表达为:

select *
from Order
join OrderDetail on Order.ID = OrderDetail.OrderID
where OrderDetail.Amount > 5

这个语法很清楚什么是join条件,什么是行过滤条件。像这样格式化它也更容易阅读!

通常,表格都有别名,使其更易于阅读:

Select *
from Order o
join OrderDetail od on o.ID = od.OrderID
where od.Amount > 5

关于带条件的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8585171/

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