0

テーブルLSF

ID  LID     FV      TYPE            
28  22      1       INCREMENTAL     
29  22      5       FULL            

テーブルLFG

ID  WHAT    WHERE   TYPE
22  V1      4444    WHITE   

IDは主キーであり、両方のテーブルのシーケンスです。

今、私はこれらの2つのテーブルを接続したいと思います

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を書く方法は?

編集:

何が欲しい?

表のLSFFVは、いつからが増分または満杯であることを意味します。バージョン1を使用している場合はINCREMENTAlであり、バージョン2、3、または4でも同じです。ただし、バージョン5以上を使用している場合はFULLです。

今、私の問題は、各バージョンをテーブルに保存していないことです。ここからはインクリメンタルであり、ここからはフルです。私の問題は、バージョン3を使用しているときに、これがFROM 1から5であり、それがINCREMENTALであることを知る方法について、selectステートメントを作成する方法です。

4

5 に答える 5

1
SELECT FG.* FROM LSF sf, LFG fg WHERE sf.LID = fg.ID AND sf.fv = (SELECT MAX(fv) FROM LSF WHERE fv<=3)
于 2013-03-26T10:15:36.737 に答える
0

これを試してみて、探しているものが得られるかどうかを確認してください。FVに1、2、3、または4が設定されているLIDに一致する最新バージョンを返す必要があります。

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;
于 2013-03-26T10:11:41.247 に答える
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;
于 2013-03-26T10:14:25.117 に答える
0

これを試して :)

SELECT LFG.* 
FROM LSF sf, LFG fg 
WHERE sf.LID = fg.ID 
AND sf.Type='INCREMENTAL'
ORDER BY sf.Type DESC;
于 2013-03-26T10:15:38.437 に答える
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
于 2013-03-26T10:21:14.310 に答える