2016-05-15 5 views
2

テーブルAに複数のエントリがあり、テーブルBのcoloumnにエントリ数を表示したいと思います。動的なセルコンテンツ表示を作成する方法はありますかテーブル内のエントリの数?2番目のテーブルのエントリ数を表示する動的値

私はMySQLの初心者で、これまでのやり方を見つけられませんでした。

例テーブルAは:

+----+------+------------+ 
| id | name | birthday | 
+----+------+------------+ 
| 1 | john | 1976-11-18 | 
| 2 | bill | 1983-12-21 | 
| 3 | abby | 1991-03-11 | 
| 4 | lynn | 1969-08-02 | 
| 5 | jake | 1989-07-29 | 
+----+------+------------+ 

は、私は、テーブルBのたいと思い何を:私の実際のデータベースでは

+----+------+----------+ 
| id | name | numusers | 
| 1 | tblA |  5 | 
+----+------+----------+ 

をこれだけ機能しない最後の値を取って何インクリメントIDが存在しません - これが解決策だったのであれば。

MySQLがこれを処理できない場合、私のサーバー上で何行かのcronジョブを作成して、その行に数を書き込みます。私はこれを行う方法を知っています - 別の方法があるかどうかを確認するだけです。

私はmysql-consoleで実行するコマンドを探していません。私が理解しようとしているのは、上記のようにセルの値を動的に変更するオプションがあるかどうかです。

+0

あなたは 'count(*)'を試しましたか? – trincot

+1

[データベースのすべてのテーブルのレコード数を取得する]の可能な複製(http://stackoverflow.com/questions/286039/get-record-counts-for-all-tables-in-mysql-database) – trincot

+0

これはおおよそ私のcronjobのように見えるだろう。私の実際の質問は:コンソールに何も入力しないでこれは可能ですか(または私のためのスクリプトを書く)?例えば。そのコマンドをセルの価値などに置きます。 – chris137

答えて

1

この情報を表示するビューを作成できます。このビューのSQLはan answer to a similar questionに触発さ:

CREATE VIEW table_counts AS 
SELECT table_name, table_rows 
    FROM information_schema.tables 
WHERE table_schema = '{your_db}'; 

ビューは、あなたが話す細胞を持つことになります。ご覧のように、それは既存のテーブルの単なるフィルタなので、このテーブルinformation_schema.tablesがあなたの質問に対する答えだと考えるかもしれません。

+0

これは私が探していたものに最も近いものです。私はそれが全然ナンセンスなので、私が実際に望んでいたことを誰も理解していないと思う。私がそれを眠った後にそれを実現しました。あなたのソリューションに感謝します。今すぐ使用してください! – chris137

0

COUNT()などで直接行うことができます。SELECT COUNT(*) FROM TblAこのテーブルからすべての行を取得します。 IDXが大丈夫なら、非常に高速です。別のテーブルに書き込む場合は、2番目のテーブルの結果を得るためにもリクエストを行う必要があります。だから私はあなたがそれを直接行うことができると思います。

パフォーマンスに問題がある場合は、TriggersまたはStored Proceduresのようないくつかの可能性があり、その結果を計算してメモリテーブルに保存してパフォーマンスを向上させることができます。

関連する問題