表LSF
ID LID FV TYPE
28 22 1 INCREMENTAL
29 22 5 FULL
表LFG
ID WHAT WHERE TYPE
22 V1 4444 WHITE
ID是主键,在两个表上都是SEQUENCE。
现在我想连接这两个表
SELECT LFG.* FROM LSF sf, LFG fg WHERE sf.LID = fg.ID AND ...
我想从LSF表中获取第一行。但是空的。
如果SELECT语句中的sf.FV为1,2,3或4,则返回第一行,如果为5或更多,则返回表LSF的第2行。如何写这样的选择?
编辑:
我想要什么?
在表格LSF中,FV表示从什么时候是INCREMENTAL或FULL。如果我有版本1是INCREMENTAl,版本2或3或4是相同的。但如果我有版本5或更多是完全。
现在我的问题是我没有将每个版本存储在表格中我只是从这里说是INCREMENTAL而且从这里是完整的。我的问题是如何为版本3编写一个select语句,如何知道这是从1到5,这意味着INCREMENTAL。
答案 0 :(得分:1)
SELECT FG.* FROM LSF sf, LFG fg WHERE sf.LID = fg.ID AND sf.fv = (SELECT MAX(fv) FROM LSF WHERE fv<=3)
答案 1 :(得分:0)
给它一个镜头,看看你是否得到你想要的东西。它应该返回最新版本匹配LID,其中为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;
答案 2 :(得分:0)
尝试此查询
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;
答案 3 :(得分:0)
试试这个:)
SELECT LFG.*
FROM LSF sf, LFG fg
WHERE sf.LID = fg.ID
AND sf.Type='INCREMENTAL'
ORDER BY sf.Type DESC;
答案 4 :(得分:0)
...and somehow include sf.FV=3
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