フォーラムの更新後、私は空白のフィールドが残っているはずです。 私はthreadという名前のテーブルを、postという名前のテーブルのフィールドで更新しようとしています。私はthreadid、postidで注文されたポストテーブルを処理する必要があります。私がしようMYSQL 1つのテーブルをステップして別のテーブルを更新する
Table: post
Field: postid - data is valid
Field: threadid - data is valid
Table: thread
Field: threadid - data is valid and matches post.threadid
Field: firstpostid - should be first post.postid found
Field: lastpostid - should be last post.postid found
Field: lastpost - should be last post.postid found
すべてがfirstpostidに同じ値を得て、私は一度に一つのフィールドを更新する方法を確立しようとしてしまったので、これは程度の近い
lastpostidされます。注文を正しく設定できません。
UPDATE thread
INNER JOIN post ON post.threadid = thread.threadid
SET thread.firstpostid =
IF(thread.firstpostid > post.postid, post.postid, thread.firstpostid)
WHERE postid <> 0
すべてのポインタが優れています。ありがとう
私はあなたの助けに感謝しますが、私はまだ苦労しています。関係するテーブルは、5300のポストと333のスレッドが小さいので、単純な非効率的なコードを使って作業をしても構いません。パスごとに1つのフィールドを設定するには、テーブルを何度かステップ実行することが非常にうれしいです。インデックスを使う場所や命令で注文する場所を知っていれば、それを管理できると思います。 – Chris
理想的には、注文threadid、postidを使用して一度に1つのレコードをポストテーブルにステップインし、テーブルスレッドに書き込む必要があります。それは可能ですか? – Chris
行を個別に処理することは可能です(行を苦労させる行)。それは多くの新生児が取るアプローチです。そのアプローチは理想的ではありません。なぜなら、大規模なセットでは、非常に遅く、非常にリソース集約的であることが判明しているからです。これは必然的に「私の小さなテストセットで動いたときに、なぜ私の生産量がこれほど遅いのですか」につながります。データの「セット」を操作する方が効率的です。 – spencer7593