Peter Kaufmann: Selektion von Daten bei mit Joints vernüpften Tabellen

Hallo allerseits,

ich habe ein Problem mit der Abfrage in meiner MySQL Datenbank welches ich mir nicht erklären kann:
Ich versuche zwei Tabellen user und person mit einem Joint über nr gemeinsam abzufragen und dabei nur die Eintäge auszugeben die mit einem bestimmten Buchstaben anfangen. Das Problem ist, daß das Feld info (vom Typ text) nicht richtig angezeigt wird (es ist defenitiv nicht NULL). Zur Erklärung:

SELECT p.nr, p.vorname, p.name, p.geburstag, p.bild, u.email, u.homepage, u.info FROM person p, user u WHERE p.name LIKE "k%" AND p.nr = u.nr;
liefert
+----+-----------+----------+------------+--------------+-------------------------+-------------------------------+------+
| nr | vorname   | name     | geburstag  | bild         | email                   | homepage                      | info |
+----+-----------+----------+------------+--------------+-------------------------+-------------------------------+------+
| 47 | Peter     | Kaufmann | 1981-06-25 | pkaufman.jpg | mail@peter.in-berlin.de | http://me.in-berlin.de/~peter | NULL |

und
SELECT p.nr, p.vorname, p.name, p.geburstag, p.bild, u.email, u.homepage, u.info FROM person p, user u WHERE p.nr = u.nr;
Die gleichen Daten (nur für alle user) aber mit korrektem Feld info.

Grüße,
Peter

  1. ich habe ein Problem mit der Abfrage in meiner MySQL Datenbank welches ich mir nicht erklären kann:
    Ich versuche zwei Tabellen user und person mit einem Joint über

    Vielleicht solltest Du Deiner DB nix zu kiffen geben? *scnr*

    SELECT p.nr, p.vorname, p.name, p.geburstag, p.bild, u.email, u.homepage, u.info FROM person p, user u WHERE p.name LIKE "k%" AND p.nr = u.nr;

    Versuch statt LIKE "k%" doch mal sowas wie
    WHERE Mid(p.name,1,1) = 'k' (oder so, weiß grad die mySQL-Entsprechung von substr() nicht).

    Kann mir allerdings auch net so recht erklären, warum Deine Version nicht geht...

    1. Hallo Mulder,

      Vielleicht solltest Du Deiner DB nix zu kiffen geben? *scnr*

      oder doch etwas mehr

      SELECT p.nr, p.vorname, p.name, p.geburstag, p.bild, u.email, u.homepage, u.info FROM person p, user u WHERE p.name LIKE "k%" AND p.nr = u.nr;

      Versuch statt LIKE "k%" doch mal sowas wie
      WHERE Mid(p.name,1,1) = 'k' (oder so, weiß grad die mySQL-Entsprechung von substr() nicht).

      Habe ich gerade probiert. Liefert leider das gleiche Ergebnis wie meine Abfrage (auch wenn deine Version zugegebener Weise wesentlicher eleganter ist).

      Kann mir allerdings auch net so recht erklären, warum Deine Version nicht geht...

      ... trotzdem danke für deinen Versuch. Ich werde vermutlich meine Datenbankstruktur überdenken um das Problem zu umgehen.

      Grüße,
      Peter