有没有办法从主查询中实时获取列,并在子查询中使用它?
这样的事情:(在子查询中使用A.item)
SELECT item1, *
FROM TableA A
INNER JOIN
(
select *
from TableB B
where A.item = B.item
) on A.x = B.x;
Run Code Online (Sandbox Code Playgroud)
好的,这是真的:
我需要修改这个现有的查询.它以前工作过,但现在数据库发生了变化,我需要做一些修改,添加一些比较.正如您所看到的,有很多JOINS,其中一个是子查询.我需要从一列从主查询(例如从表T0)增加相比,子查询(是这样的:T6.UnionAll_Empresa = T0.UnionALl_Empresa)
Select T0.UnionAll_Empresa,<STUFF>
from [UNION_ALL_BASES]..OINV T0 with (nolock)
inner join [UNION_ALL_BASES]..INV6 T1 with (nolock) on t0.DocEntry = t1.DocEntry and t0.UnionAll_Empresa = t1.UnionAll_Empresa
inner join
(
select
t1.CompanyID,
T2.CompanyDb,
t1.OurNumber,
T6.BankCode,
T6.BankName,
T3.[Description] Situation,
T1.[Status],
T5.Descrption nomeStatus,
T1.Origin,
T1.DocEntry,
T1.DocType,
T1.ControlKey,
T1.CardCode,
T4.[Description] ContractBank,
T1.PayMethodCode,
T1.DueDate,
T1.DocDate,
T1.InstallmentID,
T1.InstallmentValue,
T1.Correction,
T1.InterestContractural, …Run Code Online (Sandbox Code Playgroud) 我对最佳实践以及数据库引擎的工作方式存有疑问.
假设我创建了一个名为Employee的表,其中包含以下列:
事情是..我看到很多数据库都有它的所有表格,aditional列叫做ID,这是一个序列号.我应该把ID字段放在我的桌子上吗?我的意思是,它已经有一个要编制索引的主键.使用顺序ID字段,数据库是否可以更快地运行?我不知道如果我不使用它来链接或研究任何表格它会有什么帮助.
这有帮助吗?如果是这样,为什么,数据库中会发生什么?
谢谢!
编辑-----这只是一个愚蠢的例子.忘记SS_ID,我知道有更好的方法来选择主键.主要的主题是因为我认识的一些人只是要求我添加名为ID的列,即使我知道我们不会将它用于任何SQL查询.他们只是认为它以某种方式帮助数据库的性能,特别是因为像Microsoft Access这样的一些数据库工具总是问我们是否希望它添加这个新列.
这是错的,对吧?