oscha Geschrieben 23. Juni 2004 Teilen Geschrieben 23. Juni 2004 Hallo Leute! Ich programmiere gerade an einer Inventarverwaltung... (PHP/MySQL) Nun habe ich folgende Ausgangssituation: Tabelle "user": userid | username | pc1 | ..... 1 | oscha | 001 | .... Tabelle "pc": pcid | mhz | ... 001 | 1500 | ... Wie ihr seht hat der User "oscha" den pc1 mit der userid "001! zugeordnet... so weit wohl klar. Nun möchte ich mit hilfe von MySQL/PHP herausbekommen, welche PC's nicht zugeordnet sind. Kann mir jemand bei meinem Problem weiterhelfen??? Danke & Gruß oscha *EDIT* ich konnte mir selbst behelfen, jedoch habe ich noch ein problem: SELECT pc.pcid, pc.prozessor FROM pc INNER JOIN user ON user.pc1 = pc.pcid WHERE user.pc1 = '000' problem folgendes: bei = 000 liefert er mir keine ergebnisse, jedoch bei = 001 ein das richtige Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 23. Juni 2004 Teilen Geschrieben 23. Juni 2004 Hallo, das ist auch richtig so. Bei 000 gibt es ja keine Zuordnung also kann er auch nichts anzeigen. Möchtest Du jetzt wissen, welcher User kein PC hat oder welche PC's keinen User hat? Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oscha Geschrieben 23. Juni 2004 Autor Teilen Geschrieben 23. Juni 2004 Welcher PC keinen User zugeordnet hat wobei in einer zweiten Abfrage das andere auch sinnvoll wäre... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 23. Juni 2004 Teilen Geschrieben 23. Juni 2004 Versuch es mal so: SELECT pc.pcid, pc.prozessor FROM pc LEFT JOIN user ON pc.pcid = user.pc1 Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oscha Geschrieben 23. Juni 2004 Autor Teilen Geschrieben 23. Juni 2004 .... FROM pc LEFT JOIN user ON pc.pcid = user.pc1 WHERE user.pc1 = '0'" bringt auch keine ausgabe... wenn ich jedoch als Kriterium '001' eingebe zeigt er mir den betreffenden PC *?* vielleicht hilft das weiter... das feld pc1 und pcid sind: int(3) Zerofilled - Felder Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 23. Juni 2004 Teilen Geschrieben 23. Juni 2004 Wenn Du es ohne where Bedingung machst, dann müsstest Du doch eine Liste bekommen mit einträgen, wo an manchen Stellen Usereinträge fehlen oder? Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MrMagix Geschrieben 24. Juni 2004 Teilen Geschrieben 24. Juni 2004 Welche Bedingung hast Du definiert wenn ein User keinen PC hat? Wenn Du da eine Bedinung definiert hast, kannst Du diese ja abfragen. Z.B. gibt es keinen Computer mit der ID 000 - so waere eine Möglichkeit jedem Benutzer die 000 zu verpassen der keinen PC sein eigen nennen darf, dann kannst Du ganz normal mit einem Join abfragen. Als Leerkriterium würde ich persönlich NULL verwenden - sofern das in der DB Table auch erlaubt wurde. Gruesse Mr Magix Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oscha Geschrieben 24. Juni 2004 Autor Teilen Geschrieben 24. Juni 2004 hi leute! Die abfrage funktioniert, jedoch wirkt das kriterium immer noch nicht ganz. bei folgenden kriterien bekomme ich keine ausgabe, obwohl es null werte in dieser spalte gibt. : WHERE user.pc1 = '000' WHERE user.pc1 = '0' WHERE user.pc1 = NULL wenn ich nach einen wer wie 001, 002 oder 003 frage, die auch vorhanden sind, dann werden diese ausgegeben... Zur Info: "PC1"-Spalte INT(3), UNSIGNED ZEROFILL, NOT NULL, Standart: 000 gruß oscha Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 24. Juni 2004 Teilen Geschrieben 24. Juni 2004 Auf NULL musst du so abprüfen: WHERE user.pc1 IS NULL und int felder im allgemeinen ohne '' und auch ohne führende nullen: WHERE user.pc1 = 0 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oscha Geschrieben 24. Juni 2004 Autor Teilen Geschrieben 24. Juni 2004 danke klappt!!!!!!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.