SQL将两个表连接在一起,其中值位于两行之间,您将得到第一行
表LSFSQL将两个表连接在一起,其中值位于两行之间,您将得到第一行,sql,oracle,Sql,Oracle,表LSF ID LID FV TYPE 28 22 1 INCREMENTAL 29 22 5 FULL 表LFG ID WHAT WHERE TYPE 22 V1 4444 WHITE ID是主键,是两个表上的序列 现在我想连接这两个表 SELECT LFG.* FROM LSF sf, LFG fg WHERE sf.LID =
ID LID FV TYPE
28 22 1 INCREMENTAL
29 22 5 FULL
表LFG
ID WHAT WHERE TYPE
22 V1 4444 WHITE
ID是主键,是两个表上的序列
现在我想连接这两个表
SELECT LFG.* FROM LSF sf, LFG fg WHERE sf.LID = fg.ID AND ...
我想从LSF表中得到第一行。但它是空的
如果SELECT语句中的sf.FV为1、2、3或4,则返回第一行,如果为5或更多,则返回表LSF的第2行。如何像这样写select
编辑:
我想要什么
在表中,LSF FV表示从何时开始是增量或完整的。如果版本1是增量的,那么版本2、3或4也是如此。但如果我有版本5或更高,则已满
现在我的问题是,我没有在表中存储每个版本,我只是说从这里开始是增量的,从这里开始是完整的。我的问题是,当我有版本3时,如何编写一个select语句,如何知道这是从1到5,这意味着增量。尝试一下,看看你是否得到了你想要的。它应返回与FV设置为1、2、3或4的盖子相匹配的最新版本
SELECT LFG.*
FROM LSF sf, LFG fg
WHERE sf.LID = fg.ID
AND sf.FV >= 1
AND sf.FV < 5
ORDER BY sf.FV DESC;
请尝试此查询
SELECT
b.*, a.*
FROM
LSF ls,
LFG b,
(SELECT
lid,
min(ID) as id
FROM
LSF
GROUP BY
lid) a
WHERE
a.lid = b.id AND a.id = ls.id;
试试这个:
SELECT LFG.*
FROM LSF sf, LFG fg
WHERE sf.LID = fg.ID
AND sf.Type='INCREMENTAL'
ORDER BY sf.Type DESC;
…并以某种方式包括sf.FV=3
从联接中涉及的表中分别选择所需的列
select t1.someDate, t1.description, t2.blahblah, t2.someOtherColumn
from
foo as T1
inner join widget as T2
on T1.orange = T2.banana
这个问题毫无意义,为什么?这是有道理的。我不知道如何写select语句,你需要多解释一下你想做什么,因为它不是100%清楚!?您使用的是什么RDBMS?仍然有一些事情不清楚:为什么表LFG包含4列,但您提供了10个值?LFG和LFS之间的连接在哪里?LFG不包含任何version/FV列?谢谢,但是sf.FV不仅仅是1和5。可以是任何数字。这仅仅意味着从哪里到哪里是完整的。这个解决方案必须适用于所有版本。你是个天才,尼纳德:我想就是这个了。简单的解决方案,但我尝试使用分析oracle函数:S
SELECT LFG.* FROM LSF sf, LFG fg WHERE sf.LID = fg.ID AND ...
and I want to get first row from LSF table. But is empty.
select t1.someDate, t1.description, t2.blahblah, t2.someOtherColumn
from
foo as T1
inner join widget as T2
on T1.orange = T2.banana