2016-03-28 8 views
0

Iユーザーのテーブルを持っている:私は、複数のテスト用のテーブルを持っているMySql - マルチテーブルの自動変更を参照できますか?

UserId (int) 
DeleteSuspended (tinyint 0=ok, 1=delete, 2=suspended) 
Email (varchar) 
etc 

、例えばtesthistory:

UserId (the same as the one above) 
DeleteSuspended (this is the one I want linked) 
Mark (a test score) 

私はテストテーブルで多くの作業を行いますが、各時間は、私がDeleteSuspendedをチェックする必要がありますそのテーブルにその値を持つことが最適です。ただし、ユーザーはグローバルに、つまりユーザー表に基づいて削除または中断されます。

私の質問はこれです。 DeleteSuspendedをUserテーブルのリンクにリンクすることはできますか。つまり、UserテーブルのDeleteSuspendedを変更すると、自動的にすべてのテストテーブルのDeleteSuspendedがすべて更新されます。つまり、テストテーブルのDeleteSuspendedは、UsersテーブルのメインのDeleteSuspendedです。

+0

'DeleteSuspended'が列だったときに、パフォーマンス上の問題を抱えていたていますあなたのtesthistoryのテーブルではない?クエリで単純なJOINを使用すると、他のテーブルのすべての列にアクセスできます。 [時期尚早の最適化](http://stackoverflow.com/questions/385506/when-is-optimisation-premature)を実行しないでください。 – Progman

+0

私はパフォーマンスヒットを知らない。 PHPで書くのは面倒だった。私は結合を理解していない。同じSQL文を使って複数のテーブルを使って作業を行うことはできますか? (今私はJOINを探しています。) – Rewind

答えて

0

回答:私はマルチセレクトを使用して以下を行っています。これが最善のアプローチであるかどうかご意見ください。

私はtesthistoryからDeleteSuspendedを削除しました。

私は非停止中のユーザーからのテストの点数を取得したい場合は、私は例えば、複数選択を使用するだけで(すなわちDeleteSuspended = 0)

SELECT 
    t.Mark 
FROM 
    users u, testhistory t 
WHERE 
    u.DeleteSuspended = 0