2017-03-28 2 views
0

クエリには、一連の生徒IDが表示されます。私はどういうわけか、リストされたIDのカウントのために別のテーブルに行を挿入するクエリにforループを追加したいと思います。クエリの結果をループする

このクエリリスト学生のID:

SELECT ss.studentID 
FROM schedule_students ss 
LEFT JOIN attendance a ON ss.scheduleID = a.scheduleID 
         AND ss.studentID = a.studentID 
         AND a.status = 1 
WHERE ss.scheduleID = '6004' 
    AND a.studentID IS NULL 

次に、このクエリは、上記の出力の長さのループで実行する必要があります。

INSERT INTO attendance (timestamp, status, studentID, scheduleID) 
VALUES (NOW(), '0', '1002', '6004') 

しかしstudentIDとscheduleIDのように与えられるべきです上のクエリの "変数"

P.S上記のクエリは、別の問題に関する答えとして、SOの別のメンバーによって提案されました。

+0

INSERT INTOテーブル(フィールド...)SELECT ...構文を確認します。 – Ibu

答えて

1

selectクエリを直接使用してテーブルに挿入することができます。

insert into attendance (timestamp, status, studentID, scheduleID) 
SELECT NOW(), 0, ss.studentID, ss.scheduleID 
FROM schedule_students ss 
LEFT JOIN attendance a 
    ON ss.scheduleID = a.scheduleID 
AND ss.studentID = a.studentID 
AND a.status = 1 
WHERE ss.scheduleID = '6004' 
    AND a.studentID IS NULL 
関連する問題