Marco: MySQL Queries

Hallo

Mir ist der Unterschied nicht klar zwischen folgenden beiden Queries:

SELECT *
FROM tabelle1, tabelle2
WHERE tabelle1.id = tabelle2.id

und

SELECT *
FROM tabelle1
INNER JOIN tabelle2
ON tabelle1.id = tabelle2.id

Liegt der Unterschied lediglich darin, dass JOIN Statements mehr Möglichkeiten bieten? z.B. LEFT OUTER JOIN usw. oder kann ich das auch in Form des ersten SQL-Queries modellieren und wie?

Gruss
M.

PS. Wie kann ich in diesem Forum Codeschnippsel farblich hervorheben?

  1. Vielleicht hilft dir diese Seite dabei weiter:

    http://www.w3schools.com/sql/sql_join.asp

    PS: hab keinen Plan wie man Code farblich markiert und muss sogar zu meiner schande zugeben, ich weiß noch nichtmal wie man Links auch verlinkt.

    1. Hallo Flo(H),

      Vielleicht hilft dir diese Seite dabei weiter:

      Anklickbar so:

      http://www.w3schools.com/sql/sql_join.asp
      PS: hab keinen Plan wie man Code farblich markiert und muss sogar zu meiner schande zugeben, ich weiß noch nichtmal wie man Links auch verlinkt.

      Da Du zugibst, dass es Dir zur Schande gereicht, ein paar Tipps:

      [lіnk:http://www.w3schools.com/sql/sql_join.asp] -> http://www.w3schools.com/sql/sql_join.asp

      und wenn Du dem Link eine Bezeichnung geben willst, die statt des Links angezeigt werden soll, dann verwendest Du:

      [lіnk:http://www.w3schools.com/sql/sql_join.asp@title=Tutorial] -> Tutorial

      Syntaxhighlightning für Code mit [ code lang=<sprache> ] [ /code ]
      Leerzeichen weglassen, für <sprache> z.B. sql, perl, php, ... verwenden. Irgendwo gab es auch mal eine Liste...

      Und die FAQ des Forums, deren Aktualisierung derzeit in Arbeit ist, sind wirklich sehr hilfreich

      Freundliche Grüße

      Vinzenz

      PS: Schreibtechnik für link von Gunnar kopiert

      1. Na dann kann ich das jetzt auch endlich mal verwenden *g*

        Vielen Dank Vinzenz!

      2. Hallo Vinzenz.

        Syntaxhighlightning für Code mit [ code lang=<sprache> ] [ /code ]
        Leerzeichen weglassen, für <sprache> z.B. sql, perl, php, ... verwenden. Irgendwo gab es auch mal eine Liste...

        cforum/trunk/conf/patterns

        PS: Schreibtechnik für link von Gunnar kopiert

        Ich auch. Geht übringens auch mit den code-Blöcken:

        [cоde lang=xml]<foo title="Foo">Foo</foo>[/code] ⇒ <foo title="Foo">Foo</foo>

        Einen schönen Freitag noch.

        Gruß, Ashura

        --
        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
        30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
        Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
        [Deshalb frei! - Argumente pro freie Software]
        1. Hallo Ashura,

          Ich auch. Geht übringens auch mit den code-Blöcken:
          [cоde lang=xml]<foo title="Foo">Foo</foo>[/code] ⇒ <foo title="Foo">Foo</foo>

          Danke! Welcher Buchstabe ist es hier?

          Mal sehen:

          [cоde lang=sql]SELECT[/code]
          c: [cоde lang=sql]SELECT[/code]
          o: SELECT
          d: [cоde lang=sql]SELECT[/code]
          e: [cоde lang=sql]SELECT[/code]

          Laut Vorschau muss es das "o" sein. Weißt Du, welches exotische Zeichen hier statt dem "o" verwendet wird?

          Freundliche Grüße

          Vinzenz

          1. Hallo Vinzenz.

            Ich auch. Geht übringens auch mit den code-Blöcken:
            [cоde lang=xml]<foo title="Foo">Foo</foo>[/code] ⇒ <foo title="Foo">Foo</foo>

            Danke! Welcher Buchstabe ist es hier?

            Suche dir einen aus: Cyrillic - Test for Unicode support in Web browsers

            Mal sehen:

            [cоde lang=sql]SELECT[/code]
            c: [cоde lang=sql]SELECT[/code]
            o: SELECT
            d: [cоde lang=sql]SELECT[/code]
            e: [cоde lang=sql]SELECT[/code]

            Laut Vorschau muss es das "o" sein. Weißt Du, welches exotische Zeichen hier statt dem "o" verwendet wird?

            Das kleine kyrillische „o“.

            Einen schönen Freitag noch.

            Gruß, Ashura

            --
            Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
            30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
            Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
            [Deshalb frei! - Argumente pro freie Software]
            1. Hallo Ashura,

              Suche dir einen aus: Cyrillic - Test for Unicode support in Web browsers

              eine nützliche Seite, danke für den Link.
              Mir gefällt das kleine griechische Omikron einfach besser, das kann ich wenigstens lesen. *g*

              Freundliche Grüße

              Vinzenz

            2. Weißt Du, welches exotische Zeichen hier statt dem "o" verwendet wird?

              Das kleine kyrillische „o“.

              Es hätte aber auch das
                U+0441 с kleine kyrillische s
              oder das
                U+0435 е kleine kyrillische e
              sein können. ;-)

              Live long and prosper,
              Gunnar

              --
              „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  2. Hi Marco,

    Mir ist der Unterschied nicht klar zwischen folgenden beiden Queries:

    SELECT *
    FROM tabelle1, tabelle2
    WHERE tabelle1.id = tabelle2.id

    und

    SELECT *
    FROM tabelle1
    INNER JOIN tabelle2
    ON tabelle1.id = tabelle2.id

    der Unterschied liegt m.E. darin, dass die erste Variante nur eine Abkürzung für den normaler inner join ist und die zweite Variante nur dasselbe ausgeschrieben.
    Wenn ich den Join spezifizieren will, nehme ich Variante 2, sonst kann ich mich entscheiden, was mir besser gefällt.
    Vielleicht gibt es auch noch Perfomanceunterschiede, da bin ich mir aber nicht sicher.

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:) rl:( br:> ch:~ n4:& ie:% mo:) va:| de:< zu:| fl:( ss:) ls:[
  3. Hallo

    Mir ist der Unterschied nicht klar zwischen folgenden beiden Queries:

    SELECT *
    FROM tabelle1, tabelle2
    WHERE tabelle1.id = tabelle2.id

    Es gab, glaube ich, Datenbankmanagementsysteme, die nur diese Syntax unterstützten.

    und

    SELECT *
    FROM tabelle1
    INNER JOIN tabelle2
    ON tabelle1.id = tabelle2.id

    das ist die von mir persönlich bevorzugte Syntax, weil sie die JOIN-Bedingung aus den Einschränkungen der WHERE-Klausel hervorhebt.

    Liegt der Unterschied lediglich darin, dass JOIN Statements mehr Möglichkeiten bieten? z.B. LEFT OUTER JOIN usw. oder kann ich das auch in Form des ersten SQL-Queries modellieren und wie?

    Wenn ja, dann beim OUTER JOIN bestimmt nur umständlich. Warum möchte man das wollen. Theta-Joins sind auch mit WHERE kein Problem. Bei identischen Spaltennamen ist die USING-Syntax besonders elegant (sofern das DBMS sie unterstützt).

    Vielleicht hilft Dir mein Archivposting weiter, in dem ich noch eine weitere Variante des INNER JOINS vorstelle.

    Grundsätzlich solltest Du die Doku Deines DBMS hinzuziehen, welche JOIN-Syntax unterstützt wird.

    PS. Wie kann ich in diesem Forum Codeschnippsel farblich hervorheben?

    Bei SQL mit , bei anderen Sprachen vergleichbar.

    Freundliche Grüße

    Vinzenz