left join mit IS NULL

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

  • left join mit IS NULL

    Hallo, ich komm einfach nicht drauf.

    Ich habe zwei Tabellen:

    schueler
    id(auto_increment, primary), vorname, nachname

    note
    id(auto_increment, primary), schueler_id(index), note1, note2.....

    Ich will jetzt das hier tun:

    PHP-Code:
    insert into note set id=''schueler_id='$schueler_id' 
    Und zwar für jeden in schueler vorhandenen Datensatz, der noch keine entsprechende schueler_id in der Tabelle "note" hat.

    Andersherum erklärt:

    Wenn in Note keine Zeile vorhanden ist, in der note.schueler_id==schueler.id, dann lege diesen Datensatz an.

    Ich dachte, ich suche alle Datensätze mit dieser Bedingung raus und lege eine Schleife drumrum, in der obiger Insert steht.

    Weiß jemand was praktikables?

    Danke schonmal!

  • #2
    So in etwa:
    Code:
    INSERT INTO
    	note (schueler_id)
    SELECT
    	id 
    FROM
    	schueler s 
    WHERE
    	s.id NOT IN (
    		SELECT
    			schueler_id
    		FROM
    			note
    	)
    und dann anschliessend:
    Code:
    UPDATE	note
    SET	note1 = 1,
    	note2 = 1,
    	note3 = 1
    WHERE 1;
    Gruss
    H2O

    Kommentar


    • #3
      NOT IN!!
      Mann! Genau! Und ich versuch da rum mit ISNULL!

      Danke, note=1 ! ;-)

      Kommentar


      • #4
        Original geschrieben von Pust
        Und ich versuch da rum mit ISNULL!
        Das geht auch, vor MySQL4.1 war es sogar die einzige Möglichkeit:
        Code:
        INSERT INTO
        	note (schueler_id)
        SELECT
          	id 
        FROM
           	schueler s 
        LEFT JOIN
          	note n ON s.id = n.schueler_id
        WHERE
          	n.schueler_id IS NULL
        Gruss
        H2O

        Kommentar

        Lädt...
        X