相关疑难解决方法(0)

连接顺序在SQL中是否重要?

无视性能,我会从下面的查询A和B得到相同的结果吗?C和D怎么样?

-- A
select *
from   a left join b
           on <blahblah>
       left join c
           on <blahblan>


-- B
select *
from   a left join c
           on <blahblah>
       left join b
           on <blahblan>  

-- C
select *
from   a join b
           on <blahblah>
       join c
           on <blahblan>


-- D
select *
from   a join c
           on <blahblah>
       join b
           on <blahblan>  
Run Code Online (Sandbox Code Playgroud)

sql join relational-database

173
推荐指数
3
解决办法
12万
查看次数

JOIN或WHERE中的条件

将条件放入JOIN子句与WHERE子句之间是否存在差异(性能,最佳实践等)?

例如...

-- Condition in JOIN
SELECT *
FROM dbo.Customers AS CUS
INNER JOIN dbo.Orders AS ORD 
ON CUS.CustomerID = ORD.CustomerID
AND CUS.FirstName = 'John'

-- Condition in WHERE
SELECT *
FROM dbo.Customers AS CUS
INNER JOIN dbo.Orders AS ORD 
ON CUS.CustomerID = ORD.CustomerID
WHERE CUS.FirstName = 'John'
Run Code Online (Sandbox Code Playgroud)

您更喜欢哪个(也许是为什么)?

sql performance

170
推荐指数
4
解决办法
20万
查看次数

SQL Server 2005 - 内部联接的顺序

我在Where子句中有一个包含三个内连接语句的查询.查询大约需要2分钟才能执行.如果我只是改变两个内连接的顺序,性能下降到40秒.

除了改变内连接的顺序之外怎么做才能对查询性能产生如此巨大的影响?我原本以为优化器会想到这一切.

sql t-sql sql-server inner-join

5
推荐指数
2
解决办法
2794
查看次数

MySql在内部联接中,哪个表先出现有关系吗?

我正在选择数据以输出用户已标记书签的帖子。

保持该主表id的第posts一个用户已加书签,被称为bookMarks。这是从表posts中选择的基础posts表格,以显示给用户。

书签

id  |  postId  |  userId
--------------------------
1   |  US01    |  1
2   |  US02    |  1
3   |  US01    |  2
4   |  US02    |  2
Run Code Online (Sandbox Code Playgroud)

帖子

id  |  postId  |  postTitle
--------------------------
1   |  US01    |  Title 1
2   |  US02    |  Title 2
3   |  US03    |  Title 3
4   |  US04    |  Title 4
Run Code Online (Sandbox Code Playgroud)

我的SQL目前是这样的:

select a.postsTitle
from posts a
inner join bookmarks b …
Run Code Online (Sandbox Code Playgroud)

mysql sql

3
推荐指数
1
解决办法
3066
查看次数