Verknüpftes Suchen in 2 Tabellen

ronin

Erfahrenes Mitglied
Hallöchen.


Ich habe eine Tabelle mit Usern und eine andere Tabelle in der verschiedene Suchkriterien sind.
Per Abfrage suche ich dann User bei denen bestimmte Felder in der einen und der anderen Tabelle zutreffen.

PHP:
$query = "
SELECT count(*)
FROM tabelle1 a
LEFT JOIN tabelle2 b
ON (a.id = b.user_id)
WHERE
a.abfrage1 = 'dies' AND
b.abfrage2 = 'jenes' AND
a.admin_aktiv = '1' AND
b.zudatz = 'anderes'") or die(mysql_error());
$sql = mysql_query($query);
$menge = mysql_result($sql, 0);

Dieses Statement bringt mich zu gar nichts.
Ich will die Anzahl der Datensätze aus tabelle1 (also hier a) haben. Die tabelle2 (also hier b) dient nur als Auslagerungstabelle für die Abfragemöglichkeiten.


Kann mir jemand einen Tip geben? Danke. :)

Viele Grüße, Ronin
 
Um es noch etwas zu verdeutlichen:

In Tabelle "a" sind viele verschiedene Datensätze von Usern. Wie hier z.B. alle Member von tutorials.de. Ich hab nen Datensatz und du, die Moderatoren und Admins. Ok.
In Tabelle "b" liegen für jeden der Datensatz in Tabelle "b" ein Datensatz mit verschiedenen Optionen. Die haben meist nur den Status 0 und 1. Als Beispiel kann man hier die Rechteverwaltung ranziehen. "Kann PNs schicken" oder "Kann Mails schreiben" ... so Zeugs.

Ich will nun mit einer query rausfinden, welche User was dürfen. Ich will mittels count(*) alle Datensätze der Tabelle "a" bekommen, bei denen bestimmte Optionen aus Tabelle "a" und Tabelle "b" zutreffen.
Verknüpftes Suchen über 2 Tabellen hinweg, wobei die eine Tabelle Daten und Optionen und die zweite Tabelle nur Optionen enthält.

Hat da jemand ne Ahnung?

Vielen Dank und Grüße, Ronin
 
Morgen ersmal,

Würde dir gerne helfen am leider versteh ich dein Problem bzw. deinen Ansatz nicht ganz.
Wäre gut wenn du ein Teil deiner DB's kurz auflisten könntest.
Also zum Beispiel:
Aufbau der Tabelle a:
id | name | foo | bar.......

Gruß
max

edit:
Mir ist grad noch was aufgefallen.
Probier es mal so:

PHP:
$query = (" 
	SELECT a.abfrage1, b.abfrage2, a.admin_aktiv, b.zudatz
		FROM tabelle1 as a, tabelle2 as b 
			WHERE 
		a.abfrage1 = 'dies'  
		AND b.abfrage2 = 'jenes'		 
		AND a.admin_aktiv = '1' 
		AND b.zudatz = 'anderes'") 
	or die(mysql_error()); 
$sql = mysql_query($query); 
$menge = mysql_result($sql, 0);
 
Zuletzt bearbeitet:
Zurück