30713
Goto Top

Nach Join die Nullfelder befüllen

Hallo,

brauche eine kleine Hilfestellung.
Ich führe eine MySQL-Abfrage aus mit einem LEFT JOIN, was wunderbar funktioniert.
Nur habe ich auch diverse "NULL" Felder bei diesen möchte ich aber, das dort dann einfach der "ursprungswert" hinterlegt wird ...

Meine Abfrage:

SELECT telefon.user
FROM telefonnummer
LEFT JOIN telefon ON telefon.id = telefonnummer.id

Mein Ergebnis ist dann (natürlich NUR) der User(name)
Ist aber nun in der Tabelle "Telefonnummer" eine Nummer, welche in der Tabelle "Telefon" nicht hinterlegt ist,
wird mir ein "NULL" ausgegeben.
An dieser Stelle möchte ich aber, das dann einfach die "unbekannte" Nummer angezeigt wird ...

Ist das irgendwie verständlich? face-smile

Danke und Grüße

Content-Key: 107461

Url: https://administrator.de/contentid/107461

Printed on: April 27, 2024 at 03:04 o'clock

Member: godlie
godlie Jan 29, 2009 at 07:07:15 (UTC)
Goto Top
Hm

schon mal mit einem anderen Join rumgespielt?
die da wären:

Auszug aus der mysql Doku:
join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference STRAIGHT_JOIN table_factor
  | table_reference STRAIGHT_JOIN table_factor ON condition
  | table_reference LEFT [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [LEFT [OUTER]] JOIN table_factor
  | table_reference RIGHT [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [RIGHT [OUTER]] JOIN table_factor
ich glaub da wird schon was passendes dabei sein, ohne das du leerfelder befüllen musst.
Member: Logan000
Logan000 Jan 29, 2009 at 07:40:26 (UTC)
Goto Top
Moin Moin

Ich würde den Join lassen wie er ist.
Du soltest lieber prüfen obTelenon.user null ist und dann die Nr anzeigen.
Etwa so (ungetestet):
SELECT CASE WHEN telefon.user IsNull THEN telefon.Nr ELSE telefon.user END 
FROM telefonnummer
LEFT JOIN telefon ON telefon.id = telefonnummer.id

Gruß L.
Member: nxclass
nxclass Jan 29, 2009 at 08:14:46 (UTC)
Goto Top
SELECT
     t.user,
    CASE
        WHEN tn.telnr IS NULL
        THEN 'unbekannt'  
        ELSE tn.telnr
    END AS 'telnr'  
FROM
    telefon t
        LEFT JOIN telefonnummer tn ON t.id = tn.id
...
mir scheint die Beziehung zwischen den Tabellen irgendwie - eigenartig - wieso haben die die >> selben id's << !?