2017-04-09 1 views
0

Ich habe gekämpft, um eine Lösung für das folgende Problem zu finden.Ausgabe der COUNT Anweisung in Tabelle mit MySql einfügen.

Ich habe zwei Tabellen mit der folgenden Struktur.

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  ║ 
╚═════════╩════════════╩══════════════╝ 

Was würde ich gerne tun, so etwas wie dies, wenn die Werte in das „Team“ Tabelle einfügen:

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

Im Grunde habe ich die MEMBER_COUNT Spalte aus dem „Team“ Tisch sein möchte Die Gesamtanzahl der zu diesem Team gehörenden Mitglieder wird mit der COUNT-Funktion in der Mitgliedstabelle ausgefüllt.

Ich wäre wirklich dankbar, wenn mir jemand mit diesem Problem helfen kann.

+1

** Schlechte Idee! ** Stattdessen, wenn Sie wissen möchten, wie viele Mitglieder in einem Team sind, führen Sie eine Abfrage aus, um es herauszufinden. Auf diese Weise machst du kein Problem für dich selbst, dh jemand vergisst, 1 zu addieren oder 1 zu subtrahieren, wenn das Team wechselt – RiggsFolly

+0

Mögliches Duplikat von [Mysql: Update-Tabelle mit Anzahl aus derselben Tabelle] (http://stackoverflow.com/questions/31287943/ mysql-update-table-with-count-von-self-table) –

Antwort

0

Sie können Ihre Anfrage mit zusätzlichen Klammern im Grunde tun:

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

Subqueries erfordern ihre eigenen Klammern.

Verwenden Sie keine einfachen oder doppelten Anführungszeichen für Zahlen.

Zugegeben, ich würde wahrscheinlich insert . . . select verwenden, aber das ist die kleinste Änderung an Ihrer Abfrage versucht.

Verwandte Themen