在显式vs隐式内连接中是否存在效率差异?例如:
SELECT * FROM
table a INNER JOIN table b
ON a.id = b.id;
Run Code Online (Sandbox Code Playgroud)
与
SELECT a.*, b.*
FROM table a, table b
WHERE a.id = b.id;
Run Code Online (Sandbox Code Playgroud) CROSS JOIN和之间有什么区别INNER JOIN?
交叉加入:
SELECT
Movies.CustomerID, Movies.Movie, Customers.Age,
Customers.Gender, Customers.[Education Level],
Customers.[Internet Connection], Customers.[Marital Status],
FROM
Customers
CROSS JOIN
Movies
Run Code Online (Sandbox Code Playgroud)
内部联接:
SELECT
Movies.CustomerID, Movies.Movie, Customers.Age,
Customers.Gender, Customers.[Education Level],
Customers.[Internet Connection], Customers.[Marital Status]
FROM
Customers
INNER JOIN
Movies ON Customers.CustomerID = Movies.CustomerID
Run Code Online (Sandbox Code Playgroud)
哪一个更好,为什么我会使用其中一个?
注意:我不是要求您告诉我"使用显式连接",而是寻找Oracle官方立场,如果有任何关于该主题的话.
从Oracle数据库文档(也出现在9i和11g文档中):
Oracle建议您使用
FROM子句OUTER JOIN语法而不是Oracle连接运算符.使用Oracle join运算符的外连接查询(+)受以下规则和限制的约束[...]
换句话说,Oracle建议更喜欢这两种形式中的第一种:
FROM a LEFT JOIN b ON b.x = a.x
vs
FROM a, b WHERE b.x(+) = a.x
Run Code Online (Sandbox Code Playgroud)
但是,我从来没有在任何Oracle文档中找到一个建议,最好使用这两种形式之一:
FROM a INNER JOIN b ON b.x = a.x
vs
FROM a, b WHERE b.x = a.x
Run Code Online (Sandbox Code Playgroud)
我错过了一段吗?
我有一个简单的部分,其中显示数据库中的数据,我的数据库如下所示。
现在我有四个按钮,像这样
当用户单击以上按钮之一时,它将显示
所以现在,当用户如选择construction和未来选择,例如,Egypt' in the console and clicks button确认displays [855,599075], user can select multiple countries, this works as expected for建设,电力,oil`,
现在我想,如果用户点击如All available industries这四个按钮和下一个选择,例如按钮Egypt,点击confirm它应该显示在建筑,石油,电力行业的埃及项目总数的总和 855+337+406= 1598总预算的两个部门的总和1136173
这是我的解决方案
的HTML
<div id="interactive-layers">
<div buttonid="43" class="video-btns">
<span class="label">Construction</span></div>
<div buttonid="44" class="video-btns">
<span class="label">Power</span></div>
<div buttonid="45" class="video-btns">
<span class="label">Oil</span></div>
<div buttonid="103" class="video-btns">
<span class="label">All available industries</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是js ajax
$("#interactive-layers").on("click", ".video-btns", function(){
if( $(e.target).find("span.label").html()=="Confirm" …Run Code Online (Sandbox Code Playgroud) join ×2
sql ×2
ajax ×1
cross-join ×1
javascript ×1
jquery ×1
mysql ×1
oracle ×1
php ×1
sql-server ×1
t-sql ×1