1

毎晩実行され、次のことを実行する mysql の手順を作成する必要があります。

'associate' テーブルの各 'id' について、'status table' に特定の 'department' のエントリがあるかどうかを調べます。エントリがある場合は、次の「id」に進みます。そうでない場合は、ステータス テーブルにその ID の行を挿入します。

関連テーブル

Assoc_Id

Assoc_Project

Assoc_Assigned_On

ステータス表

サブ ID

Assoc_Id

サブオン

デパートメント

私はこれを行う方法についての手がかりがありません。どんな助けでも大歓迎です。

前もって感謝します

4

1 に答える 1

1

完全なスキーマを提供していないため、テーブルの主キー/外部キーについてはわかりませんが、役立つクエリを次に示します。

INSERT INTO tbl_status (Assoc_Id, Sub_on, Department)
SELECT a.Assoc_Id, [Your Sub_on Value], 'IT'
FROM tbl_associate a
    LEFT JOIN tbl_status s ON a.Assoc_Id = s.Assoc_Id AND s.Department = 'IT'
WHERE s.Sub_Id IS NULL;

ここでの基本的な考え方は、 が等しく、部門の値が探しているものLEFT JOINであるstatusテーブルからassociateテーブルを選択することです。Assoc_Idこの句は、結合条件に基づいてWHERE現在テーブルにないレコードのみを表示するように結果をフィルタリングします。それが主キーであると想定したため、status選択しました。Sub_Idここで何を選択しても問題ありませんが、statusこのクエリが機能するには、テーブルの順序で値が null 以外のフィールドである必要があります。

于 2014-03-01T19:49:38.717 に答える