Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

LEFT JOIN Abfrage mit WHERE nach NULL

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Heavy-Dee, 16 Dezember 2014.

  1. Heavy-Dee

    Heavy-Dee Benutzer

    Hallo zusammen,
    hab mal wieder ne Newbie Frage.

    Habe zwei Tabellen mit LEFT JOIN Beziehung
    D.h. Alle Datensätze von der Haupttabelle auch die bei der es keine Beziehung zur Nebentabelle (fehlende Beziehung -> Spalte bekommt NULL) gibt.
    Funktioniert soweit auch.
    Allerdings möchte ich nun eine WHERE-Klausel einfügen, die mir sowohl alle Datensätze mit NULL (ohne Beziehung als auch die mit einem best. Wert selektiert.

    SELECT * FROM `role`
    LEFT JOIN `organ` ON organ.orgid = fk_orgid
    WHERE `fk_orgid` = 'NULL' OR `fk_orgid` = '303202'
    ORDER BY `fk_orgid` asc

    Stehe irgendwie auf dem Schlauch warum das nicht funzt.

    Bei ... WHERE `fk_orgid` != 'NULL' ... bekomme ich alle die nicht NULL sind.
    Bei ... WHERE `fk_orgid` != 'NULL' AND `fk_orgid` = '303202' ... bekomme ich nur die '303202 sind.

    Kann mir bitte jmd helfen?
     
  2. ukulele

    ukulele Datenbank-Guru

    Erstmal entspricht 'NULL' normalerweise dem Text NULL und nur NULL (ohne Striche) dem echten NULL-Wert. Der kann außerdem nicht mit = NULL geprüft werden sondern nur mit IS NULL oder IS NOT NULL.
     
  3. Heavy-Dee

    Heavy-Dee Benutzer

    Super danke !!
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Da hätte eigentlich schon ein Syntaxfehler kommen sollen, bzw. halt ein Fehler, daß 'NULL' nicht nach INT gecastet werden kann. Ansonsten hat @ukulele das ja hinreichend erklärt.
     
  5. ukulele

    ukulele Datenbank-Guru

    fk_orgid kann auch ein Textformat haben ;)
     
  6. Distrilec

    Distrilec Datenbank-Guru

    @akretschmer So wie es aussieht ist der FK aber alphanumerisch

    EDIT:
    Oh, @ukulele war schneller :D
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Wehrmacht denn sowas?
     
  8. Hony%

    Hony% Datenbank-Guru

    Früher oder später jeder der auf künstliche Schlüssel weitgehend verzichten will.
     
  9. ukulele

    ukulele Datenbank-Guru

    Wie könnte man denn keine künstlichen Schlüssel haben wollen. Das ist ja fast so als würde man ein System für Computernamen erfinden um nicht mehr mit IP Adressen arbeiten zu müssen - wiederwärtig.
     
  10. Distrilec

    Distrilec Datenbank-Guru

    @ukulele Wenn die Computernamen genauso eindeutig sind wie die IP Adressen... Warum nicht ?
     
  11. ukulele

    ukulele Datenbank-Guru

    Das war Ironie. Von mir aus nennt eure IDs Klaus und Hans :)
     
    Distrilec gefällt das.
  12. Hony%

    Hony% Datenbank-Guru

    Ein künstlicher Schlüssel wäre es wenn du für die Computernamen jetzt eine inkrementell fortlaufende Nummerierung einführst. :p
     
  13. ukulele

    ukulele Datenbank-Guru

    Du meinst sowas wie hp01, hp02, hp03...? Verdammt woher kennst du unsere NETBIOS Clientnamen?
     
  14. Hony%

    Hony% Datenbank-Guru

    Ich dachte eher an sowas:

    123456001 -> google.com
    123456002 -> datenbankforum.com
    123456003 -> ebay.com
    123456004 -> google.de

    ;-)
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden