0

初心者ユーザー。

私は2つのテーブルを持っています:

personnel(personnel_id, employee_id, f_name, l_name, initials, department, role), track(track_id, personnel_id, status, time_in, time_out, location)

「人は何度でも追跡できる」

データ セットの必要な部分だけをレンダリングするために、次のクエリを使用しています。

SELECT 
    personnel.personnel_id, 
    personnel.employee_id, 
    personnel.l_name,  
    personnel.initials, 
    track.status, 
    track.time_in, 
    track.time_out 
FROM
    personnel, track
WHERE
    personnel.personnel_id = track.personnel_id
ORDER BY
    l_name  

ここでの問題は、track最後に挿入されたトラック データを含む個人の詳細を表示するだけでよいのに、テーブル内の外部キーの外観のすべてのインスタンスを返すことです。また、外部キーの出現ごとに同じ人事データを複数回返します。私は問題がクエリにあることを知っており、JOINS に挑戦しましたが、まだ初心者の土地にいます。

4

2 に答える 2

0
SELECT
  p.personnel_id, 
  p.employee_id, 
  p.l_name,  
  p.initials, 
  outer_track.status, 
  outer_track.time_in, 
  outer_track.time_out 
FROM Personnel P, Track OuterTrack 
where P.personnel_id = OuterTrack.personnel_id and
OuterTrack.id = 
    (SELECT FIRST t.id from InnerTrack 
     order by InnerTrack.time_in desc 
     group by InnerTrack.personnel_id)
ORDER BY
    Personnel.l_name
于 2012-08-26T01:07:23.683 に答える
-1
于 2012-08-26T00:39:29.603 に答える