阅读之后,这不是Explicit vs Implicit SQL Joins的重复.答案可能是相关的(甚至是相同的),但问题是不同的.
有什么区别,应该分别做些什么?
如果我理解正确的理论,查询优化器应该能够互换使用.
任何人都可以告诉我下面的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
从两个表中选择数据而不是连接它们的最简单方法是什么,让它们显示为单独的行.两个表都有相似或匹配的字段,我想在它们上运行一些聚合函数,例如avg同一个月中发生的所有行,来自两个表.
例如,我有两个表,一个表示来自一个系统的事务,另一个表示来自不同系统的事务.有没有办法从两个表中获取所有事务作为单独的行?如果表1有20条记录而表2有30条记录,我希望返回时有50行.
我想知道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)
有性能差异吗?还是算法差异?
或者只是语法糖?
可能重复:
MySQL:内连接vs
显式vs隐式SQL连接
当我们使用"JOIN ON"和"WHERE"子句运行连接查询时,性能是否存在差异?(无论表的数量或表中的条目数)
不确定是否已经讨论过这个主题.即便如此,我想知道是否使用最新版本的mySQL(5.1及更高版本),事情已经发生了变化.
解释声明清楚地显示了需要考虑的行数的很多差异.
我使用的语法是:
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)
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子句的使用是否会产生影响.请协助.
我是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)
谢谢.
这是我的存储过程,当我从我的经典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中有两个表: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) 可能重复:
显式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)
基本上我想知道内部连接是否比笛卡尔积更好?另外,内部连接是在内部进行的笛卡尔积?
是否存在性能差异(在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)
?
sql ×7
join ×4
mysql ×3
performance ×3
asp-classic ×1
db2 ×1
expression ×1
inner-join ×1
on-clause ×1
oracle11g ×1
pivot ×1
sql-server ×1
syntax ×1
where-clause ×1