gpt4 book ai didi

mysql - SUBQUERY 和 INNER JOIN - MySQL 和 SQL 之间的区别

转载 作者:行者123 更新时间:2023-11-29 03:18:24 25 4
gpt4 key购买 nike

这是一个简单的查询,我在自己的 MySQL 数据库中多次使用过类似的查询(使用 LIMIT 1 而不是 TOP 1):

SELECT
j1.status AS "Status",
j1.number AS "Number",
(
SELECT TOP 1
i2.invoicedDate
FROM invoices AS i2
INNER JOIN jobs AS j2 ON i2.jobKey = j2.id
WHERE
j1.id=j2.id
AND
j2.status = 'INVOICED'
) AS "Invoiced Date"
FROM jobs AS j1

假设 om.jobGroup 表中有 183,000 行,在 MySQL 中,结果将返回所有 183,000 个结果 - 如果子查询中没有任何匹配项,它将返回 NULL

当我在 Microsoft SQL 服务器中运行相同的查询时;它不仅需要更长的时间,而且只返回大约 1700 条记录?

从 SQL 的角度来看,解决这个问题的最佳方法是什么——我是不是找错了树?

删除子查询并在主查询上进行连接仍然会导致记录不匹配。

最佳答案

假设 id 是唯一的,我认为你在任一数据库中想要的查询都是这样的:

SELECT j1.status AS "Status", j1.number AS "Number",
(SELECT TOP 1 i2.invoicedDate
FROM invoices i2
WHERE i2.jobKey = j1.id AND j1.status = 'INVOICED'
) Invoiced_Date
FROM jobs j1;

通常,TOP/LIMIT 将与 ORDER BY 一起使用。

SELECT 的子查询中的任何内容都不会更改行数。

关于mysql - SUBQUERY 和 INNER JOIN - MySQL 和 SQL 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50252898/

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