2017-04-09 42 views
0

我一直在努力想出解決以下問題的方法。用MySql插入COUNT語句輸出到表格。

我有兩張表,結構如下。

member table: 

╔═══════════╦═════════════╦═════════╗ 
║ member_no ║ member_type ║ team_no ║ 
╠═══════════╬═════════════╬═════════╣ 
║ CON123 ║ monthly ║ 12 ║ 
╠═══════════╬═════════════╬═════════╣ 
║ CON456 ║ monthly ║ 13 ║ 
╠═══════════╬═════════════╬═════════╣ 
║ CON789 ║ annual ║ 13 ║ 
╚═══════════╩═════════════╩═════════╝ 

team table: 

╔═════════╦════════════╦══════════════╗ 
║ team_no ║ supervisor ║ member_count ║ 
╠═════════╬════════════╬══════════════╣ 
║ 12 ║ John ║  1  ║ 
╠═════════╬════════════╬══════════════╣ 
║ 13 ║  Joe ║  2  ║ 
╠═════════╬════════════╬══════════════╣ 
║ 14 ║ Allan ║  0  ║ 
╚═════════╩════════════╩══════════════╝ 

我想什麼做的是這樣的事情,當值插入「團隊」表:

INSERT INTO team (team_no , supervisor , member_count) 
VALUES ("13" , "Joe" , SELECT COUNT(team_no) FROM member WHERE team_no = "13"); 

從本質上講,我想從「團隊」表中的MEMBER_COUNT列是使用成員表上的COUNT函數填充屬於該團隊的成員總數。

如果有人能幫助我解決這個問題,我會非常感激。

+1

**糟糕的想法**相反,只要你想知道團隊中有多少成員,就運行一個查詢來找出它。這樣你就不會對自己造成問題,即有人在團隊變化時忘記加1或減1。 – RiggsFolly

+0

[Mysql:Update table with count from same table]可能重複(http://stackoverflow.com/questions/31287943/ MySQL的更新表與 - 數 - 從 - 同表) –

回答

0

基本上你可以做你的查詢額外的括號:

INSERT INTO team (team_no , supervisor , member_count) 
    VALUES (13 , 'Joe' , (SELECT COUNT(team_no) FROM member WHERE team_no = 13)); 

子查詢要求他們自己的括號。

不要對數字使用單引號或雙引號。

無可否認,我可能會使用insert . . . select,但這是對您嘗試查詢的最小更改。