2016-05-15 84 views
2

我在表A中有多個條目,並希望顯示錶B中某個條目的條目數。是否有創建動態單元內容顯示的方法表中的條目數量?顯示第二個表中的條目數的動態值

我是MySQL的初學者,到目前爲止還沒有找到辦法。

示例表答:

+----+------+------------+ 
| 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無法處理這個選項,我會在服務器上創建一些cronjob,讀取行數並將其寫入該單元格。我知道如何做到這一點 - 只是檢查是否有另一種方式。

我不在尋找一個命令在mysql控制檯上運行。我試圖弄清楚的是,如果有一些選項可以動態改變單元格的價值,我已經在上面描述過了。

+0

你用'count(*)'來試試嗎? – trincot

+1

[獲取MySQL數據庫中所有表的記錄數]的可能重複(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確定,那麼它非常快。如果您將其寫入另一個表格,則必須提出請求以獲取第二個表格的結果。所以我認爲你可以直接做。

如果您有一些性能問題,還有一些其他可能性,如TriggersStored Procedures來計算該結果並將它們保存在內存表中以獲得更好的性能。

相關問題