2014-07-25 2 views
1

J'ai déjà vu des questions similaires mais pas exactement ce que j'essaie de faire et je n'arrive pas à trouver la syntaxe exacte.Insérez MAX + 1 avec Select mais insérez également d'autres valeurs

En anglais je dois faire ce qui suit:

Column0 = id(primary auto-increment) 
    Column1 = interface 
    Column2 = subinterface 
    Column3 = vlan 

Je veux trouver la valeur MAX + 1 de la colonne de sous-interface, où interface = xyz. Donc si cette interface 'xyz' avait déjà 5 sous-interfaces, la requête insèrerait # 6. En même temps, je veux ajouter plus de données à cette ligne, comme le numéro vlan que cette sous-interface utilisera (colonne 3).

J'utilise actuellement deux requêtes, un "SELECT MAX (subinterface) +1 OU interface = 'xyz'", puis je prends cette valeur et faire une INSERT + VALUES pour insérer la ligne/newsubint/newvlan.

Je voudrais faire cette transaction entièrement, en utilisant un seul INSERT qui peut le faire tout à la fois. Je l'ai vu ce code fait référence à plusieurs reprises, mais je ne vois pas comment je peux ajouter des valeurs supplémentaires:

INSERT INTO TABLE1 (Column1) 
SELECT MAX(Column1) 
FROM Table1 

Alors ma question est de savoir comment dois-je faire un INSERT/SELECT et toujours insérer des valeurs supplémentaires qui n » Je viens d'autres tables.

Merci.

Répondre

0

En ajoutant les autres valeurs à la requête

INSERT INTO TABLE1 (Column1, Column2) 
SELECT MAX(Column1) + 1, 'some other value' 
FROM Table1 
+0

C'est beaucoup plus facile que je pensais - je continué à essayer d'ajouter un énoncé de valeurs après la commande SELECT. Merci! – jaredn3

+0

Cela ne fonctionne pas pour le serveur MySQL, il n'autorise pas la même table dans INSERT et la sous-requête SELECT imbriquée! – sbrbot

Questions connexes