相关疑难解决方法(0)

在MySQL查询中,为什么要使用join而不是where?

似乎要组合两个或更多表,我们可以使用join或where.一个优于另一个的优点是什么?

mysql sql database

105
推荐指数
4
解决办法
5万
查看次数

在性能方面,自然加入比SELECT FROM WHERE更好吗?

可能重复:
内部联接vs其中

今天我和我的项目经理就Cartesian产品进行了辩论.他说'自然连接'比使用'select from where'要好得多,因为后者会导致db引擎在内部执行笛卡尔积,但前者使用另一种方法来阻止这种情况.据我所知,自然连接语法在性能或含义方面与"从哪里选择"没有任何不同,我的意思是你可以根据自己的喜好使用.

SELECT * FROM table1,table2 WHERE table1.id=table2.id
SELECT * FROM table1 NATURAL JOIN table2
Run Code Online (Sandbox Code Playgroud)

请详细说明导致笛卡尔积的第一个查询,但第二个查询更加智能

sql select product cartesian

8
推荐指数
2
解决办法
2万
查看次数

JOIN ON与WHERE中的Oracle SQL查询过滤器

对于内连接,在JOIN ON子句或WHERE子句中应用过滤器的性能是否有任何差异?哪个会更高效,还是优化器会使它们相等?

加入

SELECT u.name
FROM users u
JOIN departments d
ON u.department_id = d.id
AND d.name         = 'IT'
Run Code Online (Sandbox Code Playgroud)

VS

哪里

SELECT u.name
FROM users u
JOIN departments d
ON u.department_id = d.id
WHERE d.name       = 'IT'
Run Code Online (Sandbox Code Playgroud)

Oracle 11gR2

sql oracle performance inner-join where

5
推荐指数
1
解决办法
7588
查看次数

哪种连接语法更好?

所以我们正在从Informix迁移到Sql Server.我注意到在Informix中,查询是以这种方式编写的:

select [col1],[col2],[col3],[col4],[col5]
from tableA, tableB
where tableA.[col1] = table.[gustavs_custom_chrome_id]
Run Code Online (Sandbox Code Playgroud)

我在SQL Server中编写的所有查询都写成:

select [col1],[col2],[col3],[col4],[col5]
from tableA 
inner join tableB on tableA.[col1] = table.[gustavs_custom_chrome_id]
Run Code Online (Sandbox Code Playgroud)

现在,我的第一个想法是:第一个查询很糟糕.它可能会创建这个巨大的记录集然后使用Where子句与实际记录集相关联.因此,它对性能不利.而且它是非ansi.所以这是双重的坏事.

然而,经过一些谷歌搜索,似乎它们在理论上几乎是一样的.它们都符合ANSI标准.

所以我的问题是:

  1. 两个查询都执行相同的操作吗?IE浏览器.运行同样快,总是给出相同的答案.
  2. 两者都符合ANSI标准吗?
  3. 是否有任何突出的理由为什么我应该推动一种风格而不是另一种?或者我应该留下足够好的一个人?


    注意:这些只是查询的示例.我已经看到一些查询(第一类)一次最多连接5个表.

t-sql sql-server informix join ansi

4
推荐指数
1
解决办法
3566
查看次数

这些连接之间的差异

两者之间有什么区别吗?

SELECT *
FROM TABLE_A a
JOIN TABLE_B b
  ON a.propertyA = b.propertyA        
Run Code Online (Sandbox Code Playgroud)

和查询

SELECT * from TABLE_A a, TABLE_B b where a.propertyA=b.propertyA.
Run Code Online (Sandbox Code Playgroud)

sql join

4
推荐指数
1
解决办法
202
查看次数

使用JOIN与WHERE子句时是否有性能提升?

根据下面的代码示例,使用JOIN而不是WHERE子句是否存在性能差异(或任何其他原因):

EX1.

select *
from table_1, table_2
where table_1.id=table_2.id;
Run Code Online (Sandbox Code Playgroud)

EX2.

select *
from table_1
    join table_2 on
    table_1.id = table_2.id;
Run Code Online (Sandbox Code Playgroud)

sql oracle

4
推荐指数
1
解决办法
729
查看次数

何时使用JOIN for MySQL(SQL)

我无法有效地理解这两个查询之间的区别.

select *
from person p, mytlc m
where p.personid = m.personid and p.personid = 3635

select *
from person p
    join mytlc m on p.personid = m.personid
where p.personid=3635
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我认为两者都不会是性能更好的查询;但是,如果查询处理更多数据更复杂,该怎么办?

谢谢!

mysql join

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

连接条件和条件之间的差异

有人告诉我两个查询之间有什么区别:

版本A.

select p.LastName, o.OrderNo  
  from Persons p, Orders o  
 where p.P_Id = o.P_Id
Run Code Online (Sandbox Code Playgroud)

...和...

版本B

select p.LastName, o.OrderNo  
  from Persons p 
  join Orders o on p.P_Id = o.P_Id
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
233
查看次数