相关疑难解决方法(0)

SQL join:where子句与on子句

阅读之后,这不是Explicit vs Implicit SQL Joins的重复.答案可能是相关的(甚至是相同的),但问题是不同的.


有什么区别,应该分别做些什么?

如果我理解正确的理论,查询优化器应该能够互换使用.

sql join on-clause where-clause

616
推荐指数
10
解决办法
62万
查看次数

使用Oracle 11g中的+符号左外连接

任何人都可以告诉我下面的2个查询是左外连接还是右外连接的例子?

Table Part:
Name         Null?       Type
PART_ID      NOT NULL    VARCHAR2(4)
SUPPLIER_ID              VARCHAR2(4)

PART_ID SUPPLIER_ID
P1      S1
P2      S2
P3  
P4  

Table Supplier:
Name            Null?     Type
SUPPLIER_ID NOT NULL      VARCHAR2(4)
SUPPLIER_NAME   NOT NULL  VARCHAR2(20)

SUPPLIER_ID  SUPPLIER_NAME
S1           Supplier#1
S2           Supplier#2
S3           Supplier#3
Run Code Online (Sandbox Code Playgroud)

显示所有零件,无论供应商是否供货:

SELECT P.Part_Id, S.Supplier_Name
FROM Part P, Supplier S
WHERE P.Supplier_Id = S.Supplier_Id (+)

SELECT P.Part_Id, S.Supplier_Name
FROM Part P, Supplier S
WHERE S.Supplier_Id (+) = P.Supplier_Id

sql oracle11g

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

从多个表中选择没有连接?

从两个表中选择数据而不是连接它们的最简单方法是什么,让它们显示为单独的行.两个表都有相似或匹配的字段,我想在它们上运行一些聚合函数,例如avg同一个月中发生的所有行,来自两个表.

例如,我有两个表,一个表示来自一个系统的事务,另一个表示来自不同系统的事务.有没有办法从两个表中获取所有事务作为单独的行?如果表1有20条记录而表2有30条记录,我希望返回时有50行.

mysql

52
推荐指数
5
解决办法
19万
查看次数

SQL JOIN:USING,ON或WHERE有区别吗?

我想知道SQL在这些连接语句上执行的方式是否有任何不同:

SELECT * FROM a,b WHERE a.ID = b.ID

SELECT * FROM a JOIN b ON a.ID = b.ID

SELECT * FROM a JOIN b USING(ID)
Run Code Online (Sandbox Code Playgroud)

有性能差异吗?还是算法差异?

或者只是语法糖?

sql syntax performance expression join

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

MySQL性能:JOIN ON与WHERE

可能重复:
MySQL:内连接vs
显式vs隐式SQL连接

当我们使用"JOIN ON"和"WHERE"子句运行连接查询时,性能是否存在差异?(无论表的数量或表中的条目数)

不确定是否已经讨论过这个主题.即便如此,我想知道是否使用最新版本的mySQL(5.1及更高版本),事情已经发生了变化.

解释声明清楚地显示了需要考虑的行数的很多差异.

我使用的语法是:

使用JOIN ON

SELECT <field names>
FROM <table1>
JOIN <table2> ON <join_condition>
AND JOIN <table3> ON <join_condition> 
AND JOIN <table4> ON <join_condition> 
.... 
Run Code Online (Sandbox Code Playgroud)

使用WHERE

SELECT <field names> 
FROM <table names list separated by comma> 
WHERE <join_condition> 
AND <join_condition> 
AND <join_condition> 
.... 
Run Code Online (Sandbox Code Playgroud)

所以不确定JOIN ON或WHERE子句的使用是否会产生影响.请协助.

mysql performance join

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

将2个SQL查询组合在一起并将结果集合在一起

我是SQL查询的新手.

我有2个查询返回2个结果集,查询返回正确的输出.

如何将这两个查询合并为一个,以便我可以获得一个结果集?

查询1:

SELECT SUM(Fdays) AS fDaysSum From tblFieldDays WHERE tblFieldDays.NameCode=35 AND tblFieldDays.WeekEnding=?
Run Code Online (Sandbox Code Playgroud)

查询2:

SELECT SUM(CHdays) AS hrsSum From tblChargeHours WHERE tblChargeHours.NameCode=35 AND tblChargeHours.WeekEnding=?
Run Code Online (Sandbox Code Playgroud)

谢谢.

sql

28
推荐指数
3
解决办法
14万
查看次数

执行存储过程时"关闭对象时不允许操作"

这是我的存储过程,当我从我的经典ASP代码调用它时,我收到错误:

关闭对象时不允许操作.

当我尝试记录计数时.

有人知道这里有什么问题吗?

我想回到桌子上@t.

谢谢.

USE [Hires_new]
GO
/****** Object:  StoredProcedure [dbo].[sp_selectNewHireWorkPeriodsSQL]    Script Date: 05/13/2013 14:04:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      
-- Create date: 
-- Description: 
-- =============================================
ALTER PROCEDURE [dbo].[sp_selectNewHireWorkPeriodsSQL] 
    -- Add the parameters for the stored procedure here

AS

    declare @t table (HireID int, StartDate datetime, EndDate datetime, date_initiated datetime, date_closed datetime, firmName nvarchar(100), InquiryID int)
    DECLARE @acc INT 
    SET @acc = 1
    DECLARE @max INT 
    select …
Run Code Online (Sandbox Code Playgroud)

sql-server asp-classic

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

带有字符串的SQL Pivot

我在SQL Server中有两个表:Customer和Address

客户表:

CustomerID  FirstName  LastName
----------- ---------- ----------
1           Andrew     Jackson         
2           George     Washington
Run Code Online (Sandbox Code Playgroud)

地址表:

AddressID   CustomerID  AddressType City
----------- ----------- ----------- ----------
1           1           Home        Waxhaw     
2           1           Office      Nashville    
3           2           Home        Philadelphia
Run Code Online (Sandbox Code Playgroud)

这是我需要的输出:

CustomerID  Firstname  HomeCity      OfficeCity
----------- ---------- ----------    ----------
1           Andrew     Waxhaw        Nashville
2           George     Philadelphia  Null
Run Code Online (Sandbox Code Playgroud)

这是我的查询,但没有得到正确的结果:

SELECT CustomerID, Firstname, HOme as HomeCity, Office as OfficeCity FROM 
   (SELECT C.CustomerID, C.FirstName, A.AddressID, A.AddressType, A.City 
    FROM Customer C, Address A 
    WHERE C.CustomerID = …
Run Code Online (Sandbox Code Playgroud)

sql pivot

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

内部连接与笛卡尔积的性能

可能重复:
显式vs隐式SQL连接

我想知道性能的差异

select * from A,B,C where A.x = B.y and B.y = C.z
Run Code Online (Sandbox Code Playgroud)

select * from A INNER JOIN B on A.x = B.y INNER JOIN C on B.y = C.z
Run Code Online (Sandbox Code Playgroud)

基本上我想知道内部连接是否比笛卡尔积更好?另外,内部连接是在内部进行的笛卡尔积?

sql db2 join

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

MySQL:内部联接vs Where

是否存在性能差异(在mysql中)

Select * from Table1 T1 
Inner Join Table2 T2 On T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)

Select * from Table1 T1, Table2 T2 
Where T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)

mysql sql performance inner-join

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