php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.08.2009, 16:27  
Benutzer
 
Registriert seit: 10.07.2009
Beiträge: 54
PHP-Kenntnisse:
Fortgeschritten
Peterle befindet sich auf einem aufstrebenden Ast
Standard Prüfen ob Eintrag nicht in zweiter Tabelle

Hi,

ich stehe gerade etwas auf dem Schlauch, also nehmt es mir nicht übel, wenn ich schon wieder was frage.

Ich habe zwei Tabellen und ich möchte prüfen, wie viele Eintragungen es in der 1. Tabelle gibt, die es nicht in der 2. gibt.
Tabelle 1 hat den Fremdschlüssel Kategorie und bezieht auf den Schlüssel kategorie der zweiten Tabelle.

So sieht es aktuell aus:
Code:
SELECT
  test.Kategorie,
  COUNT(*) as Anzahl
FROM
  test,
  test2 
LEFT OUTER JOIN
  test3 ON (test3.ID = test.Kategorie)								
WHERE
  test.Kategorie <> test2.kategorie
GROUP BY
  test.Kategorie
Jedoch erhalte ich immer den Fehler:
Zitat:
#1054 - Unknown column 'test.Kategorie' in 'on clause'
Die Spalte gibt es aber.
Peterle ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.08.2009, 17:00  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Du hast zwei Tabelle, benutzt aber in deinem Query drei. Da haut schon mal was ganz und gar nicht hin. Vom Prinzip her ist es ganz einfach...

PHP-Code:
SELECT
...
FROM
   tabelle1 LEFT JOIN
   tabelle2 ON 
(wie die ebend zusammenhängen)
WHERE
   tabelle2
.irgend_ne_id IS NULL 
erc ist offline   Mit Zitat antworten
Alt 12.08.2009, 17:11  
Benutzer
 
Registriert seit: 10.07.2009
Beiträge: 54
PHP-Kenntnisse:
Fortgeschritten
Peterle befindet sich auf einem aufstrebenden Ast
Standard

Jein, ich habe zwar drei, jedoch brauche ich die dritte Tabelle nur für den Join, damit ich die Kategorie rausbekommen kann.

"IS NULL" bringt hier wenig, da in test2 bereits Eintragungen sind und nirgends was von NULL steht.

Im Grunde habe ich folgendes vor:
Ich möchte in test2 Datensätze nur dann einfügen, wenn es den Datensatz mit dem Schlüssel kategorie noch nicht gibt. Und als Quelle nehme ich test3 die mit test1 per JOIN verknüpft ist.
Peterle ist offline   Mit Zitat antworten
Alt 12.08.2009, 17:38  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Zitat:
Zitat von Peterle Beitrag anzeigen
"IS NULL" bringt hier wenig, da in test2 bereits Eintragungen sind und nirgends was von NULL steht.
Du weißt schon was ein LEFT JOIN macht? Es ist sogar erforderlich das in test2 in der genutzten Spalte keine Null Werte auftauchen.
erc ist offline   Mit Zitat antworten
Alt 12.08.2009, 17:58  
Benutzer
 
Registriert seit: 10.07.2009
Beiträge: 54
PHP-Kenntnisse:
Fortgeschritten
Peterle befindet sich auf einem aufstrebenden Ast
Standard

Ja schon, aber deshalb verstehe ich ja nicht, warum du auf IS NULL prüfst.
Und, der Query bringt übrigens ein falsches Ergebnis.

Ich hab mit Absicht in test3 eine neue Kategorie angelegt, jedoch erhielt ich nach dem Ausführen 38 als Ergebnis, was jedoch eigentlich 1 sein sollte.

Was ich noch anmerken sollte.
Es gibt Kategorien mit der Nummer 0 (jedoch nicht NULL).

Geändert von Peterle (12.08.2009 um 19:47 Uhr). Grund: RS verbessert *g*
Peterle ist offline   Mit Zitat antworten
Alt 12.08.2009, 19:11  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Zitat:
Zitat von Peterle Beitrag anzeigen
Ja schon, aber deshalb verstehe ich ja nicht, warum du aif IS NULL prüft.
So ganz scheinbar nicht. Beispiel:

PHP-Code:
Tabelle1
1
2
3

Tabelle2
1

Wenn du jetzt Tabelle1 LEFT JOIN Tabelle2 ON ... machst erhällst du
PHP-Code:
1   1
2   NULL
3   3 
Und mit WHERE Tabelle2.X IS NULL bleibt nur noch 2 übrig.

Zitat:
Zitat von Peterle Beitrag anzeigen
Und, der Query bringt übrigens nicht ein falsches Ergebis.
Dann machst du was falsch...
erc ist offline   Mit Zitat antworten
Alt 12.08.2009, 19:48  
Benutzer
 
Registriert seit: 10.07.2009
Beiträge: 54
PHP-Kenntnisse:
Fortgeschritten
Peterle befindet sich auf einem aufstrebenden Ast
Standard

Komisch,
dann schau ich mir die Sache später nochmal genauer an.

Trotzdem erstmal danke.
Peterle ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
tabelle 2 in tabelle 1 updaten steffen_dk Datenbanken 11 04.07.2009 15:04
Datensatz kopieren, einen Eintrag ändern und in gleiche Tabelle einfügen beta02 Datenbanken 4 28.05.2009 16:04
[Erledigt] Prüfen, ob ein Wert in der Tabelle ist Inchie PHP Tipps 2008 2 02.07.2008 21:08
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
tabelle in tabelle ohne aussenrand noskule HTML, Usability und Barrierefreiheit 6 25.08.2005 14:17
if(neuer eintrag in mysql tabelle) nickie12 PHP Tipps 2005-2 6 08.08.2005 21:26
Datum eintrag in eine Tabelle!! PHP Tipps 2005-2 23 28.07.2005 12:31
Letzten Eintrag einer MySQL Tabelle auslesen PHP Tipps 2005-2 4 12.07.2005 12:23
auf vorhandensein einer Tabelle prüfen. PHP Tipps 2005 2 19.01.2005 19:51
[Erledigt] eintrag in Tabelle PHP Tipps 2004 36 29.10.2004 18:03
eintrag in eine tabelle PHP Tipps 2004 6 27.10.2004 00:57
prüfen ob eintrag vorhanden ist Datenbanken 2 06.10.2004 15:28
db auf eintrag prüfen? PHP Tipps 2004 18 19.08.2004 14:59
mit sqlite prüfen ob eine Tabelle in der db exististiert PHP Tipps 2004 0 17.08.2004 21:27
[Erledigt] Tabelle auf Inhalt prüfen? Datenbanken 2 24.06.2004 11:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql \wert nicht in tabelle\, mysql überprüfen ob wert \nicht in tabelle\, sql eintrag nicht in tabelle, sql nicht in zweiter tabelle, sql werte die in zweioter tabellen nicht enthalten sind, mysql prüfen ob datensatz nicht enthalten ist, sql einen wert aus \zweiter tabelle\ auslesen, mysql prüfen ob etwas nicht enthalten ist, sql nicht in zweiter tabeller, mysql prüfen ob ein datensatz in zwei tabellen enthalten ist, sql daten nicht in zweiter tabelle, prüfen ob datensatz in zwei tabellen existiert, php sqlite3 prüfen ob ein wert in der datenbank existiert, testen ob wert in zelle steht sql, in zwei tabellen prüfen ob ein wert gibt sql, mysql \nicht in zweiter tabelle\, zwei tabellen prüfen sql, sqlite3 tabelle prüfen vorhandensein, sqlite prüfen ob tabelle existiert, sql abfrage, ob eintrag nicht in 2. tabelle vorhanden

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum