Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] select innerhalb eines selects

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] select innerhalb eines selects

    hi zusammen,


    ich hab folgende tabelle:



    Code:
     
    
     
    | Field                     | Type                   | Null | Key | Default | Extra          |
     
    +-------------------+------------------+------+-- ---+---------+----------------+
     
    | ID                         | int(10) unsigned |         | PRI | NULL    | auto_increment |
     
    | bezeichnung        | varchar(100)      |         |        |              |                |
     
    | wirkstoffklasseID | int(10) unsigned |         |        | 0           |                |
     
    | order_in_list         | int(11)                 |         |         | 0          |                |
     
    | bemerkung          | varchar(100)      |         |         |             |                |
     
    +-------------------+------------------+------+-- ---+---------+----------------+

    (sorry, sieht nicht gerade leserlich aus aber das board hier zerhaut mir wieder mal meine formatierung........)


    order_in_list gibt hierbei die reihenfolge an nach der die einträge später in einer selectbox angezeigt werden sollen.


    was ich jetzt machen möchte:


    jedesmal wenn in "bezeichnung" und "wirkstoffklasseid" etwas eingetragen wird soll die maximale order_in_list zahl die es schon unter derselben wirkstoffklasseid gibt um eins inkrementiert werden und dann zusammen mit der neuen bezeichnung und wirkstoffklasseid eingetragen werden (ich hoffe das war verständlich, wenn nicht ist es glaube ich am unteren sql-statement zu erkennen was ich machen will).


    hab das jetzt mit folgendem sql-statement probiert:


    Code:
     
    insert into dev_wirkstoff(bezeichnung, wirkstoffklasseID, order_in_list) values('testwirkstoff', 2, select (max(order_in_list)+1) from dev_wirkstoff where wirkstoffklasseID = 2);

    da krieg ich aber nur einen sql-fehler das ich einen syntaxfehler habe (wo genau wird nicht spezifiziert)...


    aber für mich sieht die anweisung ok aus.......sieht jemand was da falsch läuft?

    oder kann ich das in mysql gar nicht so machen(ich hab die version 4.0.26)?


  • #2
    Subqueries (also Unterabfragen) kannst du in MySQL erst ab Version 4.1 definieren. Du wirst also mit deiner MySQL-Version nicht darum herumkommen zwei Abfragen an den MySQL-Server zu senden: http://dev.mysql.com/doc/refman/4.1/en/subqueries. html

    Kommentar


    • #3
      ah, ok,

      ich dachte es wäre in der ganzen 4-er schon möglich und ging deshalb von einem syntaxfehler meinerseits aus.

      danke!

      Kommentar

      Lädt...
      X