阅读之后,这不是Explicit vs Implicit SQL Joins的重复.答案可能是相关的(甚至是相同的),但问题是不同的.
有什么区别,应该分别做些什么?
如果我理解正确的理论,查询优化器应该能够互换使用.
Sql语句.
1.select a.* from A a left join B b on a.id =b.id and a.id=2;
2.select a.* from A a left join B b on a.id =b.id where a.id=2;
Run Code Online (Sandbox Code Playgroud)
这两个sql语句有什么区别?
我有以下内容从表中返回特定的帖子.正如所料,它给出了11行.
-- SQL gives 11 rows
select p.ID from wp_posts p where p.ID IN (2596, 2597, 2598, 2600, 2849, 2928, 2851, 2852, 3011, 2854, 2855);
Run Code Online (Sandbox Code Playgroud)
我有第二张表'wp_raceresult',它记录了一个人的比赛结果.此人在此表中只有7个结果.我希望在特定跑步者的这组比赛中获得所有比赛结果的详细信息,即每个比赛没有结果的NULL.SQL我有atm只会产生匹配的行.
-- SQL only gives 7 rows
select p.ID,rr.leaguepoints from wp_posts p
join wp_raceresult rr on p.id=rr.race
where p.ID IN (2596, 2597, 2598, 2600, 2849, 2928, 2851, 2852, 3011, 2854, 2855)
and runner=7
Run Code Online (Sandbox Code Playgroud)
我尝试过使用FULL OUTER,LEFT,RIGHT子句和UNION但没有成功.任何的想法?
我怎么这样查询?
select Distinct Station , Slot , SubSlot, CompID , CompName
from DeviceTrace as DT DT.DeviceID = '1339759958'
inner join CompList as CL
where and DT.CompID = CL.CompID
Run Code Online (Sandbox Code Playgroud)
DT.DeviceID = '1339759958'在开始使用内连接之前我需要做.我使用sql server.
在JOIN子句或WHERE子句中使用SQL条件更好吗?是否针对这两种方式优化了SQL引擎?它取决于发动机吗?
是否始终可以通过WHERE子句中的条件替换JOIN子句中的条件?
这里举例说明我的意思
SELECT role_.name
FROM user_role
INNER JOIN user ON user_role.user_id_ = user.id AND
user_role.user_id_ = @user_id
INNER JOIN role ON user_role.role_id = role_.id
Run Code Online (Sandbox Code Playgroud)
与
SELECT role_.name
FROM user_role
INNER JOIN user ON user_role.user_id_ = user.id
INNER JOIN role ON user_role.role_id = role_.id
WHERE user.id = @user_id
Run Code Online (Sandbox Code Playgroud) sql ×4
join ×3
mysql ×2
sql-server ×2
inner-join ×1
on-clause ×1
syntax ×1
where ×1
where-clause ×1