ホームページ  >  に質問  >  本文

MYSQL データベースの別のテーブルからデータを抽出し、既存の列を変更します。

私は 2 つのテーブル usersposts を持つ MYSQL データベース (PHPMyAdmin 内) を持っています。どちらのテーブルにも username 列があります。 posts テーブルの username 列を変更して、users テーブル、つまり posts# からユーザー名データを抽出したいと考えています。 ## テーブル データは users テーブルから自動的に更新され、users テーブルの更新中に参照されます。

最初は外部キーを使用してこの機能を実現できると考えていましたが、私の理解が正しければ、外部キーは親テーブルの主キーにのみ関連付けられますよね。

次の構文が間違っているというエラーが表示されますが、ヒントや解決策は示されていません:

リーリー

データベース内の別のテーブルの列のデータを参照/使用するように既存の列を変更するにはどうすればよいですか?

2 つのテーブルの

username 列は同じタイプ、サイズ、属性を持ち、つまり VARCHAR(55) NOT NULL であり、innoDB ストレージ エンジンが使用されます。

P粉143640496P粉143640496375日前539

全員に返信(1)返信します

  • P粉501683874

    P粉5016838742023-09-11 00:39:41

    外部キーはデータの整合性をチェックするものであり、それ以上のものではありません。これにより、子テーブルのフィールドに、親テーブルの参照フィールドに表示される値が含まれることが保証されます。それでおしまい###*###。 外部キーを使用して、あるテーブルのデータを別のテーブルにマージすることはできません。ただし、

    JOIN

    ステートメントは必要なことを正確に実行し、外部キーとともに使用すると、各投稿に正しいユーザー データを識別するための有効なユーザー名が確実に含まれます。 次の例を見てみましょう:

    ユーザーデータ

    リーリー ######役職###### リーリー 次のクエリを使用して、

    userdata

    テーブルと posts テーブルを

    JOIN

    できます。 リーリー さらに、このクエリに基づいて VIEW を作成してデータを返すことができます: リーリー SELECT

    ステートメントを使用してビューをクエリします:

    リーリー デモ:https://www.db-fiddle.com/f/tbBXvthBtwH7CKu1yjzPjQ/0

    ## 外部キーを使用すると、親テーブルからの更新と削除を子テーブルにカスケードすることもできますが、これはこの記事の範囲外です。

    返事
    0
  • キャンセル返事