MySQL leere Tabelle
Mika9
- php
Hallo miteinander,
hab ein kleines Problem mit einer MySQL Abfrage. Ich möchte eine Abfrage über 2 Tabellen machen.
SELECT tabelle_a.spalte FROM tabelle_a, tabelle_b WHERE tabelle_a.id="$variable" AND tabelle_b.nr!=tabelle_a.id;
Klappt wunderbar, wenn allerdings Tabelle B keinen EIntrag hat (also leer ist) dann gibt die Abfrage nichts zurück. Ich möchte jedoch in diesem Fall das AND tabelle_b.nr!=tabelle_a.id ignorieren. Gibt es da eine Möglichkeit oder muss ich das über mehrere ABfragen machen?
Danke und Gruß
Mika9
SELECT tabelle_a.spalte FROM tabelle_a, tabelle_b WHERE tabelle_a.id="$variable" AND tabelle_b.nr!=tabelle_a.id;
... wenn allerdings Tabelle B keinen EIntrag hat (also leer ist) dann gibt die Abfrage nichts zurück. Ich möchte jedoch in diesem Fall das AND tabelle_b.nr!=tabelle_a.id ignorieren. Gibt es da eine Möglichkeit oder muss ich das über mehrere ABfragen machen?
Geht ...WHERE tabelle_a.id="$variable" AND (tabelle_b.nr!=tabelle_a.id OR tabelle_b.nr IS NULL) ?
yo,
Geht ...WHERE tabelle_a.id="$variable" AND (tabelle_b.nr!=tabelle_a.id OR tabelle_b.nr IS NULL) ?
Ich würde einen Outer JOIN empfehlen, besonders wenn es um IS NULL bedingungen geht.
Ilja
Hallo nochmal,
geht nicht wirklich.
Die beiden untenstehenden müssten doch das selbe resultat liefern, wenn die Tabelle enduser_verbotene_kategorien leer ist. Das bezwecke ich zumindest damit.
$sql="SELECT kategorien.id, kategorien.kategorie
FROM kategorien, enduser_verbotene_kategorien
WHERE kategorien.DEAKTIVIERT!="1"
AND enduser_verbotene_kategorien.kategorie IS NULL";
$sql="SELECT kategorien.id, kategorien.kategorie
FROM kategorien
WHERE kategorien.DEAKTIVIERT!="1"";
Will aber net...
geht nicht wirklich.
Jetzt aber:
SELECT a.id,a.name FROM a LEFT JOIN b ON a.id=b.id_a WHERE b.id IS NULL
liefert alle a, die nicht in b eingetragen sind. Dein "deaktiviert" kannst du auch noch mit AND hintendranhängen.
yo,
SELECT tabelle_a.spalte FROM tabelle_a, tabelle_b WHERE tabelle_a.id="$variable" AND tabelle_b.nr!=tabelle_a.id;
SELECT tabelle_a.spalte
FROM tabelle_a LEFT JOIN tabelle_b ON (tabelle_b.nr!=tabelle_a.id)
WHERE tabelle_a.id="$variable";
Ilja
Hallo,
funktioniert leider nicht. Siehe mein anderer Beitrag ....
yo,
funktioniert leider nicht. Siehe mein anderer Beitrag ....
falls sich das problem nocht nicht gelöst hat, dann schreibe doch nochmal was genau du suchst. und dabei ist es hilfreich, dass du die beiden tabellen mal mit beispieldatensätzen angibts und wie dabei die ergebnistabelle aussehen sollte (einmal mit und einmal ohne leere tabelle). das macht es uns leichter zu verstehen, was genau du haben willst.
Ilja