Selektion von Daten bei mit Joints vernüpften Tabellen
Peter Kaufmann
- datenbank
0 Mulder
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
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...
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