2

私は2つのデータテーブルを持っています.1つは次のとおりです:

次を含む「カード」テーブル:

   id                           Department
0000022288                      COR 
0000043880                      NA  
0000031643                      NA  
0000013870                      TRAN
0000053900                      COR 
0000055452                      IOR 
0000010957                      IOR 
0000025746                      BILL
0000061783                      BILL
0000000773                      NA  

別のテーブル (valid_entry) があります。

date         emp_id    emp_time
20130101    0000002001  101825    
20130102    0000002001  085024    
20130103    0000002001  085657    
20130106    0000002001  095145    
20130107    0000002001  090724    
20130108    0000002001  091244    

有効なテーブルにない ID を表示したい。

私の質問:

SELECT  emp_valid_date
    ,   emp_valid_name
    ,   emp_valid_time
    ,   emp_valid_dept
    ,   Name
FROM valid_entry
INNER JOIN Cards ON emp_valid_dept = Depart_Code
WHERE emp_valid_date = '$date'
    AND emp_valid_time >= 060000
    AND emp_valid_time <= 230000
    AND emp_valid_dept != 'DRI' OR emp_valid_time = ''

次のようなものを取得できれば問題ありません。

date         emp_id    emp_time card_id_missing
20130101    0000002001  101825    
20130102                        0000002001  
20130103    0000002001  085657    
20130106    0000002001  095145    
20130107    0000002001  090724    
20130108    0000002001  091244 

私はこのようなものが欲しい

4

2 に答える 2

1

このクエリを試してください

    SELECT ID from Cards C
    LEFT OUTER JOIN valid_entry VE
    ON C.ID = VE.emp_id
    WHERE VE.emp_id IS NULL

すべての行を表示する必要がある場合は、WHERE句を削除してください。すべての行を返しますが、カード内の行に対しては NULL を返しますが、valid_entry 内にはありません

ラージ

于 2013-09-03T05:58:43.143 に答える
0

何かのようなもの

SELECT * FROM cards WHERE id NOT IN (SELECT emp_id FROM valid entry)
于 2013-09-03T05:58:52.567 に答える