MySql

2017-12-29 23 views
-1

からマシニングレコードを検索します。私はMySqlではそれほど良くありませんが、プロジェクトで使用していて特定のタスクを実行する際に問題があります。列を持つMySql

  1. 学生:名前、...など にこのテーブルには、すべてのアクティブな学生の記録を持っている

    は、私は2私のデータベース内のテーブルを持っています。

  2. student_logs with columns:名前、日付 この表には、すでにアクティブではない学生が含まれている が含まれています。

最後の結果では、私は数週間(最大到着日は数週間前です)にアクティブではない学生を探しています。私は、このコマンドを使用してい

:このステップでは

SELECT name_and_family, max(dateArrival) 
FROM  **students_log** 
GROUP BY name_and_family  
order by dateArrival asc; 

、私は学生のエントリの最後の日を受けていますが、それは非アクティブな学生を含んでいます。

私は非アクティブの名前を排除することができるように、学生の間で交差するのか分からないstudents_logテーブルを形成し、唯一学生からの名前で表示されますstudent_logから名前のレコードだけを取得するにはテーブル。

ありがとうございました。

+0

学生を取得する方法は、非アクティブですか?例えば、students_logの日付が6ヶ月以上ある場合は? – kiamoz

+0

FROM students_logの直後にJOINステートメント(JOIN students on students.id = student.log.id)が必要ですが、その直後にWHERE status = 'active'(またはテーブル内にあるもの)を追加してください。テーブルスキーマを投稿できる場合は、より具体的な回答を得ることができます。 – tbedner

答えて

0

と表示されるstudent_logの名前のレコードのみを取得するには、studentsテーブルの名前にします。 name

JOIN二つのテーブル:

SELECT l.name_and_family, max(l.dateArrival) 
FROM students as s 
INNER JOIN students_log as l ON s.name = l.name 
GROUP BY l.name_and_family 
order by l.dateArrival asc; 
+0

ありがとう、私はそれが働いていると思う:) –